我有一个具有以下配置的 LAMP 服务器。
CPU : Intel(R) Xeon(R) CPU
内存:32GB
硬盘:80 GB
在虚拟环境中运行。
服务器中的所有东西都运行得很顺利。但是我注意到 RAM 使用量是服务器每天都在无缘无故地增加。
这是我服务器上的当前内存使用情况。
# free -g
total used free shared buffers cached
Mem: 31 13 17 0 0 10
-/+ buffers/cache: 1 29
Swap: 2 0 2
Run Code Online (Sandbox Code Playgroud)
您可以在下面看到过去 8 周的内存使用情况。 http://i.stack.imgur.com/543jh.png
我执行了以下命令来查找每个进程消耗的内存量。
# ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
0.00 Mb COMMAND
2253.62 …Run Code Online (Sandbox Code Playgroud) 我有一些关于我的网络服务器的问题。它是一个运行 centos 5.5 和 php5、mysql5 的 LAMP Web 服务器。在高峰时段,服务器会获得数百(可能是数千)个并发用户。
我正在尝试优化并理解“顶部”。从我所看到的:
我的 ram 的 16GB 都用完了吗?
这是否意味着我的服务器需要更多内存?
我的swap只有2GB,应该增加吗?
通常在高峰时段,我的服务器负载平均第一个数字约为 2.5-3。我可以做些什么来优化服务器,以便即使在峰值期间负载平均值也不会超过 1?过去有人告诉我一个好的工作服务器应该保持在 1 个负载以下,这仍然是真的吗?尽管即使在 2.5-3 的加载期间,服务器页面和应用程序的加载速度似乎也不错。
php.ini 中的内存大小应该设置为多少?
top - 14:30:18 up 2 days, 12:41, 5 users, load average: 1.25, 1.74, 2.92
任务:总共 305 个,运行 2 个,睡眠 302 个,停止 0 个,僵尸 1 个
Cpu(s): 6.3%us, 0.9%sy, 0.0%ni, 92.5%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st
内存:总共 16427200k,已使用 16111472k,315728k 空闲,3120316k 缓冲区
交换:总共 2104496k,已使用 268k,空闲 2104228k,缓存 6216756k
PID 用户 PR NI VIRT RES SHR S %CPU %MEM … 我正在运行具有 24G RAM 的服务器。这里唯一运行的是一个配置为 Master 的 MySQL 服务器。
当我通过 free -m 检查内存时,我得到了这个:
total used free shared buffers cached
Mem: 24158 24027 131 0 131 23050
Run Code Online (Sandbox Code Playgroud)
大约 23G 在缓存中。这对我来说似乎很多。
我还在 my.cnf 中将缓存设置为 0
query_cache_size = 0
Run Code Online (Sandbox Code Playgroud)
如何检查缓存的内容?此外,重新启动 mysql 不会清除缓存。Aflush tables也没有帮助。
我知道过去有人以类似的方式问过这个问题,但我只是好奇。
如果我制作了一个脚本并让它在每半夜运行以检查我的内存使用率是否高于假设 80 ......让脚本自动运行是一个坏主意sync; echo 1 > /proc/sys/vm/drop_caches吗?我经常遇到一个问题,我的 RAM 使用率因此达到 99%,我只是有点担心。
提前致谢。
cache ×2
linux ×2
memory ×2
centos ×1
debian ×1
lamp ×1
memory-usage ×1
mysql ×1
performance ×1
top ×1