服务器1g内存 php,同样php代码不同服务器执行消耗内存不一致

PHP代码里可以用memory_get_usage/memory_get_peak_usage获取内存使用情况,用getrusage获取CPU使用情况.注意,memory_get_usage不包括PHP进程本身占用的内存.

要看PHP进程本身占用的内存,可以用top或者ps aux|head -n1 && ps aux|grep php-fpm:

PID USER PPID NI RES S %CPU %MEM TIME+ nTH P COMMAND

6152 root 1865 0 10.8m S 0.0 0.1 1:51.03 1 0 php-fpm: master process (/opt/php/5.4/etc/php-fpm.conf) +

16523 png 6152 0 32.0m S 0.0 0.4 0:15.39 1 0 php-fpm: pool www

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 6152 0.0 0.1 329392 11108 ? Ss 2月12 1:51 php-fpm: master process (/opt/php/5.4/etc/php-fpm.conf)

png 16523 0.0 0.4 426180 32732 ? S 2月25 0:15 php-fpm: pool www

里面的RES和RSS表示的就是PHP-FPM进程占用的物理内存,大小具体跟实际情况有关,如果opcache缓存了很多PHP脚本,内存占用则会大些,如果PHP加载了很多PECL扩展,内存也会大些.

如果你的PHP-FPM工作进程数量配置得很多,那么PHP整体占用得内存就会更大.对于非阻塞场景,PHP-FPM进程数配置为2倍CPU核心数足够,千万不要动不动就根据内存大小配置几百个进程,那会得不偿失.

如果存在阻塞脚本,那可以配置单独的动态PHP-FPM进程池来处理,把阻塞分离出来,具体可以看这里.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值