查看php-fpm内存占用命令
docker>Evan2017年9月15日 (五) 07:45的版本 (→命令讲解详情)
php-fpm内存占用
命令讲解详情
用到的ps命令的选项如下 -l或l:采用详细的格式来显示程序状况。 -y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位。 Do not show flags; show rss in place of addr. This option can only be used with -l. -C by command name <指令名称>:指定执行指令的名称,并列出该指令的程序的状况 命令1 [~]$ ps -lC php-fpm F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 5 S 498 6349 21556 0 80 0 - 803311 inet_c ? 00:01:45 php-fpm 5 S 0 21556 1 0 80 0 - 75039 ep_pol ? 00:01:15 php-fpm 5 S 498 21557 21556 0 80 0 - 2048885 inet_c ? 00:04:44 php-fpm 5 S 498 21558 21556 0 80 0 - 2046997 inet_c ? 00:04:43 php-fpm 5 S 498 21559 21556 0 80 0 - 2048469 inet_c ? 00:04:42 php-fpm 命令2 由1 进步而来 查看每个FPM的内存占用:#RSS段为内存 ps -ylC php-fpm --sort:rss S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD S 0 21556 1 0 80 0 8388 75039 ep_pol ? 00:01:16 php-fpm S 498 6349 21556 0 80 0 11728 811119 inet_c ? 00:01:46 php-fpm S 498 21564 21556 0 80 0 14940 2053445 inet_c ? 00:04:42 php-fpm S 498 21693 21556 0 80 0 14944 2054981 inet_c ? 00:04:44 php-fpm S 498 21735 21556 0 80 0 14944 2054789 inet_c ? 00:04:45 php-fpm 由上可见单个php-fpm(php7) 程占用14M左右;( ps :php5.6的大概是19M ; 网上说的 23M 应该 是 php5.3 ) #php-fpm 进程总数 ps -ylC php-fpm --sort:rss|wc -l 402 所有的内存使用问题 差不多6G都不到呢 15M × 400=6000M 和上面的计算出来差不多 php进程占用内存的大小,GB为单位 ps --no-headers -o rss -C php-fpm |awk '{ sum+=$1 } END { print (sum/1024/1024,"GB") }' 4.12779 GB 一个php-cgi 5.3 进程,大概占用多少内存呢,大概是20MB(具体的要看你的php加载了多少模块)。可以通过pmap指令查看哪些地方占用了内存。所以,尽量不要加载不必要的php扩展模块,可以减少不必要的内存浪费。 而php-fpm(php7) 程占用14M左右; ps :php5.6的大概是19M ; 所以建议在打包时 能不要的模块尽量不要喽,虽然php哥都喜欢大而全 哈哈 ps找出消耗内存的元凶 找出最占用内存的进程 ps -A --sort -rss -o comm,pmem,pcpu |uniq -c | head -10 1 COMMAND %MEM %CPU 1 java 1.5 4.9 1 java 1.3 0.2 8 nginx 0.1 0.8