Linux服务器CPU占用过高解决方法
在使用Linux云服务器过程中,很多站长会遇到这样的情况:网站访问速度突然变慢,后台操作卡顿,甚至出现502、504等错误。
登录服务器查看后发现CPU使用率已经接近100%。
CPU占用过高并不一定代表服务器配置不够,有时候是某个程序异常运行、访问量增加或者后台任务导致。
下面介绍几种常见排查方法。
一、查看服务器CPU使用情况
首先登录Linux服务器。
执行:
top
可以看到当前服务器运行情况。
重点查看:
%Cpu
以及:
load average
如果CPU长期保持90%以上,就需要进一步排查。
二、查看占用CPU最高的进程
在top界面中,可以看到进程列表。
重点关注:
-
PID
-
USER
-
CPU%
例如:
PID USER %CPU
1234 root 95.0
说明该进程正在大量占用CPU。
记录对应PID:
1234
方便后续处理。
三、查看具体进程信息
执行:
ps -ef | grep PID
例如:
ps -ef | grep 1234
可以查看这个进程属于哪个程序。
常见情况:
-
nginx
-
php-fpm
-
mysql
-
定时任务
-
异常程序
四、检查PHP程序占用CPU
如果服务器用于网站搭建,PHP进程占用CPU比较常见。
查看PHP进程:
ps aux | grep php
如果发现大量PHP进程,需要检查:
-
网站访问量
-
网站插件
-
程序循环
-
恶意请求
五、检查MySQL占用情况
数据库查询异常也会导致CPU升高。
查看MySQL进程:
top -c
如果发现mysql占用较高,可以进入数据库查看:
show processlist;
查看是否存在长时间运行的查询。
六、检查是否存在异常进程
有些服务器被上传异常文件后,会出现CPU突然升高。
查看运行进程:
ps aux
如果发现陌生程序,需要确认来源。
不要随意结束系统进程,避免影响服务器正常运行。
七、清理长期运行的任务
查看定时任务:
crontab -l
检查是否存在异常任务。
例如:
-
自动执行脚本
-
定时下载文件
-
循环运行程序
八、临时结束高占用进程
确认程序没有问题后,可以结束:
kill -9 PID
例如:
kill -9 1234
注意:
不要直接结束不认识的系统进程。
九、优化建议
为了减少CPU异常:
-
定期检查服务器进程
-
删除无用网站文件
-
更新网站程序
-
限制异常访问
-
开启网站缓存
如果长期CPU不足,可以考虑升级服务器配置。
总结
Linux服务器CPU占用过高,常见原因:
-
网站访问量增加
-
PHP程序异常
-
数据库查询过慢
-
定时任务占用资源
-
异常程序运行
遇到CPU满载时,不建议直接重启服务器,先找到具体占用资源的程序,再针对处理,避免问题反复出现。