Linux
檢查單個 PHP-FPM 程序的平均記憶體使用情況
我嘗試了以下命令來檢查單個 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
。比較:
% ps -ef | grep '[f]'pm www-data 3014 3714 2 19:09 ? 00:01:16 php-fpm: pool www root 3714 1 0 Srp03 ? 00:00:32 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) www-data 10644 3714 2 18:14 ? 00:02:35 php-fpm: pool www www-data 18448 3714 2 19:42 ? 00:00:28 php-fpm: pool www % ps axc | grep '[f]'pm 3014 ? S 1:17 php-fpm7.0 3714 ? Ss 0:32 php-fpm7.0 10644 ? S 2:35 php-fpm7.0 18448 ? S 0:28 php-fpm7.0
在此範例中,可匹配的字元串
-C
為php-fpm7.0
:% ps -C php-fpm7.0 -o rss= 32516 65952 61468 61012