我正在阅读本文关于Apache
mpm 配置调整。作者展示了如何获取 apache 使用的虚拟内存量,如下所示:
ps -A | grep apache
但是这个命令向我显示了多个 apache 进程:
11188 ? 00:01:36 apache2
17821 ? 00:00:02 apache2
23682 ? 00:00:00 apache2
23720 ? 00:00:00 apache2
23790 ? 00:00:01 apache2
23800 ? 00:00:00 apache2
23803 ? 00:00:00 apache2
23805 ? 00:00:01 apache2
23881 ? 00:00:00 apache2
23884 ? 00:00:00 apache2
23900 ? 00:00:00 apache2
我是否需要知道单个进程使用了多少内存或所有进程使用了多少内存才能代入这个公式:
通常 MaxClients 的数量 = (总 RAM 内存 - Apache 进程之外的其他进程使用的 RAM 内存)/(单个 Apache 进程使用的内存)
看起来我需要知道单个进程的内存使用情况,但是列表中哪一个进程的内存使用情况?
答案1
使用top
命令,并查看RES
列。
或者,您也可以使用此命令来获取所有 Apache 进程的该列:
top -n 1 | grep apache2 | awk '{print $6}'
要获得所有 Apache 进程的平均内存,您可以进行计算。
这行 Bash 命令将获取你的平均内存使用情况:
PROC_COUNT=0;MEM_TOTAL=0;for MEM_NUM in $(top -n 1 | grep apache2 | awk '{print $6}' | sed 's/m//'); do let PROC_COUNT++;echo $MEM_NUM;let MEM_TOTAL=$MEM_TOTAL+$MEM_NUM; done; let MEMAVG=$MEM_TOTAL/$PROC_COUNT; echo "----"; echo $MEMAVG;