纪录一次php环境线上优化
最近发现阿里云的一台线上php环境特别的卡,cdn与web应用防火墙都上了,但还是很卡,查看top命令发现phpfpm占用系统资源很严重,cpu总是在80%多运行,内存占用正常,当下状态就算输出一个helloworld都得3s以上,肯定是有问题的,仔细核对后,发现php.ini中有一个参数有被修改过:
output_buffering = 4096
改回:
output_buffering = On
:wq
尝试重启php服务
lnmp restart
发现fpm进程太过繁忙而无法重启,直接reboot
开机后top
发现cpu回到60%左右,虽然还很高,但输出helloworld已经不怎么卡了,还得继续优化....
打开阿里云管理平台,平台提醒本服务器已经CPU7天至少8小时高于85%,建议升配置
把2核8G升配到4核16G,重启后继续top观察
发现CPU已控制在40%左右,继续运行php的helloworld,发现速度基本正常
ps auxw| sort -rn -k4| head -40 #查看消耗内存最多的前40个进程
通过这个命令查出有一个1分钟执行一次的计划任务因为逻辑bug导致执行一次特别慢,优化之后top发现cpu已跌到20%左右,算正常了