查找linux下进程占用CPU过高的原因,以php-fpm为例
很多时候,线上服务器的进程在某时间段内长时间占用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的慢日志定位是哪个文件中哪行哪个方法慢,这样针对性的进行优化。
查找linux下进程占用CPU过高的原因,以php-fpm为例的更多相关文章
- linux 分析进程占用CPU过高
重点是查看进程的线程中,哪个线程占用cpu过高,然后用gdb附加到进程,调试线程,看是否有死循环或者死锁等问题,步骤如下: 1 先用ps + grep找出该死的进程pid,比如 1706 2 top ...
- 【转】Linux 下取进程占用 cpu/内存 最高的前10个进程
# Linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...
- linux下获取占用CPU资源最多的10个进程
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...
- linux 下取进程占用 cpu/内存 最高的前10个进程
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ;|head linux下获取占用内存资源最多的10个进程,可以使用如下命令组合: ;|head 命令组合解析(针对CPU的,M ...
- Linux下查看占用CPU资源最多的几个进程
linux下获取占用CPU资源最多的10个进程: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用内存资源最多的10个进 ...
- linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...
- PHP CGI 进程占用CPU过高导致CPU使用达到100%的另类原因
由于使用的华为云的CDN加速,结果发现我的阿里云服务器突然卡顿,网页打开极慢.登陆华为云CDN管理后台发现最高带宽占用30M,流量短时间内达到10GB以上,这么大的流量我的服务器肯定扛不住啊.于是还跟 ...
- JVM进程占用CPU过高问题排查
上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程. 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然 ...
- linux下查找java进程占用CPU过高原因
1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p <pid>查看线程占用情况 3. ...
随机推荐
- 学习MeteoInfo二次开发教程(十)
1.复制文件cloud_1009271330.000,I-01.pal 2.改: GridData cloud = aDataInfo.GetGridData(""); 为: Gr ...
- C# & JAVA:读写文件
using System; using System.IO; using System.Text; namespace ConsoleApplication4 { class Program { pu ...
- Vue 学习(1)
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta cha ...
- (Python基础)文件操作
对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 命名为7 years Once I was seven years old my momma t ...
- Android开发 MVP模式的规范记录(个人总结)
前言 首先,这篇文章不在讲解什么是mvp模式,如果需要请自行搜索mvp模式文章了解.这个文章里我只记录mvp模式的创建和mvp各自层的界限.另外这个博客属于个人使用mvp模式后一些经验总结与记录.并不 ...
- 如何使用cloudflare的CDN加速网站隐藏网站IP
原文:http://www.safecdn.cn/contact-zh/2018/12/cloudflare-cdn/1146.html 高防CDN:https://www.safeidc.cn/cd ...
- 使用Dom4j对XML文档创建与解析
创建XML文件: public class Dom4jCreateXml { public void testCreatXml() { //创建文档对象 Document document = Doc ...
- MongoDB主从复制和副本集
MongoDB有主从复制和副本集两种主从复制模式,主从复制最大的问题就是无法自动故障转移,MongoDB副本集解决了主从模式无法自动故障转义的特点,因此是复制的首选.对于简单的主从复制无法自动故障转移 ...
- nginx 做数据仓库时,location 404 Not Found,发现找不到要用的数据报:Not Found
背景: 获得远程机器某个目录下的数据文件 方案:使用Nginx配置 1./home/ftp/www/ 下面有images 文件夹,为了访问images下面文件,配置Nginx如下: location ...
- (项目六)Mha-Atlas-MySQL高可用方案实践
mha-mysql环境准备: 三台虚拟机,都安装了mysql,都关闭防火墙和selinux,同时在每台虚拟机上都做映射 软件包 1) mha管理节点安装包: mha4mysql-manager-0.5 ...