查找linux下进程占用CPU过高的原因,以php-fpm为例
发布时间:2020-05-25 08:16:15 所属栏目:PHP 来源:互联网
导读:很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。 1、找出占用CPU最高的10个进程 或查看占用内存最高的10个进程 或者使用 top ,按 1 显示CPU列表
很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。 1、找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n 10 或者使用 top ,按 1 显示CPU列表,再按 shift+p 以CPU排序 top
2、对进程进行跟踪查看 查看进程打开的文件 lsof -p 进程PID 查看进程在处理的文件 ll /proc/进程PID/fd 查看进程的内存使用情况 pmap 进程PID 通过strace来跟踪进程的系统调用 strace -p 进程PID 当然我们也可以查看汇总的信息 strace -cp 进程PID 如果我们想跟踪某进程所有的系统调用,并统计调用时间,并导出为文件,可用如下命令 strace -o 导出文件 -T -tt -e trace=all -p 进程PID
3、查找php-fpm占用过高的原因 我们可以配置php-fpm的慢日志,查找是哪些文件导致php-fpm占用过高。 先找到php-fpm.conf文件位置 ps -ef|grep php 修改php-fpm.conf,并打开日志选项 ;错误日志 error_log = log/php-fpm.log ;访问日志 access.log = log/$pool.access.log ;访问日志格式 access.format = "%R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%" ;慢日志 slowlog = log/$pool.log.slow ;慢日志超时时间 request_slowlog_timeout = 3 注意:log 目录需要我们自已创建。 我们可以通过php-fpm的慢日志定位是哪个文件中哪行哪个方法慢,这样针对性的进行优化。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |