Pra*_*ash 5 linux memory lamp top memory-usage
我正在尝试计算 LAMP 堆栈计算机中 AMP 使用的内存量。
top -bn1 | grep -E '(mysql|httpd|php)' | awk '{mem += $(NF-2)} END {print mem}'
但是使用上述命令生成的总和大于 100%,但我期望低于 100%,因为各个进程的内存使用情况已经以 % by 表示top
。
请帮我理解是否top
不能使用这种方式报告的内存来计算内存使用情况?
%MEM 字段是进程正在使用的物理内存页数乘以 100 除以物理内存页总数。没有理由它的总和应该为 100——考虑 10 个进程都使用同一物理内存页。
您可能还有一个有错误的版本,top
将 %MEM 计算为 VSZ/mem 而不是 RSS/mem。找到这些产生不同结果的情况,并确保最高值是 RSS/mem。
用于top -v
查看您是否有 top 的 BusyBox 版本。这往往比 procps 版本有更多错误。