我尝试了以下命令来检查单个 PHP-FPM 进程的平均内存使用情况
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
我得到了一个错误awk: cmd. line:1: fatal: division by zero attempted
而这个命令
total=0; for i in `ps -C php-fpm -o rss=`; do total=$(($total+$i)); done; echo "Memory usage: $total kb";
Memory usage: 0 kb
ps -ef | grep php
root 9435 1 0 11:42 ? 00:00:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
somename+ 9438 9435 0 11:42 ? 00:00:00 php-fpm: pool somename-1
somename+ 9439 9435 0 11:42 ? 00:00:01 php-fpm: pool somename-1
...
...
对于匹配的
ps
选项-C
,您需要确保您正在寻找正确的字符串 - 不是默认显示的扩展命令名称 eg-ef
,而是c
选项与 eg 结合显示的内容ax
。相比:
在此示例中,可匹配的字符串
-C
为php-fpm7.0
:我不知道我在哪里找到它,但它有效!