CPU过高,php-fgm为例找问题

php系统,偶尔可能会出现CPU过高的问题,很多情况都有可能,但是怎么排查呢?为了优化必须排查,真实项目中就看到过系统奔溃的。

1.找出占用CPU最高的10个进程

ps aux | sort -k3nr | head -n 10

2.找出占用内存最高的10个进程

ps aux | sort -k4nr | head -n 10

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的慢日志定位是哪个文件中哪行哪个方法慢,这样针对性的进行优化。

参考:https://www.cnblogs.com/jkko123/p/10693355.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值