我如何知道 apache 服务使用了多少虚拟内存

我如何知道 apache 服务使用了多少虚拟内存

我正在阅读本文关于Apachempm 配置调整。作者展示了如何获取 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;

相关内容