宕机,使用阿里云自带的查看httpd/mysqld/php-fpm/unknown进程使用情况。
其中
1、httpd/php-fpm 进程数达到设定最大值;
2、磁盘读写(特别是写数据飙升 读请求飙升);
3、出网数据飙升;
4、TCP 连接数中 Establish 数据小升,NON-Establish 飙升
首先限制上面两个进程名进程数的最大值,以防止CPU满负荷
原因分析:
1、链接太多,解决方案:限制MaxRequestWorkers
2、进程内存溢出,解决方案:限制:MaxRequestsPerChild
使用free -h命令查看内存
ps -aux | grep httpd 可以看到httpd这个程序的进程id
使用ps -aux | sort -k4nr | head -10命令查看内存占用前10的进程
ps -aux | sort -k4nr | grep php-fpm 对php-fpm 进程进行排序
ps -aux | sort -k4nr | grep httpd 对php-fpm 进程进行排序
上述方法都设置完毕,看未来一段时间有没有出现CPU满负荷
查看 httpd/php-fpm 两个进程的信息,使用 ps命令(PS命令详解: https://www.cnblogs.com/sexybear/p/Linux_ps.html)
ps aux #查看当前所有的进程
ps aux | grep -c httpd #显示有多少进程数
ps aux | grep httpd #显示具体的进程数信息
Top 查看某些或者某个进程(top -p pid)(https://www.cnblogs.com/zhoug2020/p/6336453.html)
1、vmstat 1 查看系统负载
2、使用pidstat查看进程使用磁盘的情况(详细查看) pidstat -d 1
通过进程号找到对应的脚本名称,并杀掉对应的进程 kill 进程的pid
上两句出处:https://www.cnblogs.com/xibuhaohao/p/9946644.html
pidstat详解:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858874.html
pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。