linux php 内存配置,linux下php限制占用内存过高

背景:

每次搭建完网站之后,都感觉网站越来越卡,访问越来越慢,查看之后发现mem内存占用竟然达到了800多M,而原本机器的内存也就1G,当然导致访问速度变慢了。于是百度了一下,根据教材查看了占用靠前的进程,发现有20多个php进程,每个占用内存大概3%,这样下来,整个内存基本都是被PHP占用了,就进行了PHP的进程限制配置,在此将教材再整理,给以后建站备用。

方法:

1.查看内存使用量:top命令后,看到1G内存只剩了71M可用。

2.查看内存占用量:以下命令二选一

ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n | less

ps auxw|head -1;ps auxw|sort -rn -k4|head -40

下图可以看出,PHP进程占用了大量内存(第二列为内存使用百分比)

48c4f31d098c4114cf4f61d968443e36.png

3.配置PHP,控制进程数及内存使用

通过配置以四个php设置参数:pm.max_children,pm.max_spare_servers,pm.min_spare_servers, php_admin_value[memory_limit],以控制php的子进程和内存占用:

pm.max_children:控制php-fpm子进程数量;pm.max_spare_servers:该值表示保证空闲进程数最大值,如果空闲进程大于此值,此进行清理,通常设置为pm.max_children的60%~80%;pm.min_spare_servers:保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程。 下面两个参数的值,均不能大于第一个参数的值,否则重启php时会报错。php_admin_value[memory_limit]:每个php-fpm进程的内存限制

vi/etc/php-fpm.d/www.conf

通用以上配置,1G内存,pm.max_children控制在15,php_admin_value[memory_limit]控制在64,基本php进程的最大占用量为75%。经测试发现,每访问一次PV,使用内存3.5%,最大并发基本可以控制在20左右,再往上会降低访问速度,当然只是从内存角度分析,不算带宽和代码质量。

对www.conf进行编辑,调整以上四个值,使php内存使用率降低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值