首页 > 系统相关 >Linux【CPU100% 问题定位】

Linux【CPU100% 问题定位】

时间:2023-11-01 16:45:53浏览次数:32  
标签:定位 中断 CPU100% 排查 Linux 进程 使用率 CPU

一、场景

        在我们项目部署上线的时候,我们是不是会经常去Linux服务器上查查服务器的CPU使用率,或者是运维经常会盯Linux的CPU使用率。如果CPU使用率一直100%,如何查找并解决问题?

二、步骤

       2.1、定位到进程

                使用top 和 ps分析工具报告的CPU 使用率,定位到进程。是那个进程占用了CPU就清楚了。     

                注意:load average 后面的值比较大,就该注意,linux处于超负荷运行中。         

             

       2.2、定位到函数

    虽然现在我们知道是由于那个进程造成的cpu飙升,但是里面代码那么多,我怎么知道是哪个函数哪块代码出的问题的呢?这个时候,我们就需要用另一个工具perf来分析下,也就是在ssh上输入pref命令来看下:

                   

# -g开启调用关系分析,-p指定php-fpm的进程号94806
$ perf top -g -p 94806

 2.3、定位函数详情

         看看这个函数sqrt,add_function这个函数是php内置的,现在看看是出现了什么问题

     

$ cat app/index.php $x += sqrt($x);
}

echo "It works!"

我在上面加了个大循环,这里导致cpu使用率骤增的。

三、小结     

CPU 使用率是最直观和最常用的系统性能指标,更是在排查性能问题时,通常会关注的第一个指标。

所以更要熟悉它的含义,尤其要弄清楚用户(%user)、Nice(%nice)、系统(%system)、等待 I/O(%iowait)、中断(%irq)以及软中断(%softirq)这几种不同 CPU 的使用率。比如说:

  • 用户 CPU 和 Nice CPU 高,说明用户态进程占用了较多的 CPU,所以应该着重排查进程的性能问题。
  • 系统 CPU 高,说明内核态占用了较多的 CPU,所以应该着重排查内核线程或者系统调用的性能问题。
  • I/O 等待 CPU 高,说明等待 I/O 的时间比较长,所以应该着重排查系统存储是不是出现了 I/O 问题。
  • 软中断和硬中断高,说明软中断或硬中断的处理程序占用了较多的 CPU,所以应该着重排查内核中的中断服务程序。

碰到 CPU 使用率升高的问题,可以借助 top、pidstat 等工具,确认引发 CPU 性能问题的来源;再使用 perf 等工具,排查出引起性能问题的具体函数。

 

标签:定位,中断,CPU100%,排查,Linux,进程,使用率,CPU
From: https://www.cnblogs.com/xiaobaicai12138/p/17803485.html

相关文章

  • Linux操作(第四周)
    这节课无缝衔接接着上节课的cat命令,cat命令0用于查看内容比较少的文件,而今天的more命令是以逐页的方式来显示文件内容的,其中空格键用以向下翻页,“b”键用于向上翻页。学习的第二个命令则是head命令,该命令用以查询文件的前几行,我们还可以用head-n的方式来查询前n行内容。与head......
  • linux学习记录:进程管理
    1.进程:正在运行的程序,包括这个程序所占用的系统资源。每个进程都有唯一的进程标识pid,一个pid只能识别一个进程,ppid是父进程id。进程状态:就绪、运行、阻塞。2.查看进程静态查看进程:psaux(捕捉某一瞬间某一个进程的状态)-a:显示所有用户的进程,包括完整路径-u:显示使用者的名......
  • [Linux环境编程]Linux程序设置调度策略和优先级
    可以使用chrt命令设置进程的调度策略和优先级。以下命令将11528进程的调度策略设置为RR,调度优先级设置为20:chrt-r--pid2011528具体使用见其help信息,如下:ighthouse@cpp_template$chrt--helpShoworchangethereal-timeschedulingattributesofaprocess.Setpol......
  • linux之部署gitlab
    gitlab安装以及使用1.卸载gitlab#先停止服务sudogitlab-ctlstop#卸载gitlabsudoyumremovegitlab-ce-y#删除所有文件sudorm-rf/etc/gitlabsudorm-rf/var/opt/gitlabsudorm-rf/opt/gitlab#清理不再需要的软件包sudoyumautoremove-y2.安装gitlab#......
  • linux10.25课堂随笔
    一.文件权限4.3.1SUID权限1.使用ll命令查看/usr/bin/passwd文件,第一行的第四个字符为“s”。“s”表示特殊权限SUID。2.普通用户可通过SUID提权,使用chmod命令给user增加SUID权限。4.3.2SGID权限1.在一个程序上添加SGID,用户在执行过程中会获得该程序用户组的权限(相当于临时......
  • Linux第四章文件权限 2023.10.24
    1、UGO设置文件属性与权限chown:修改文件属主,属性chgrp:修改文件属组chmod:修改文件权限 用法例如(1)chownqfedufile2;chownqfedu02.linuxfile2(2)chgrplinux02file2(3)  1、chmodu+xfile  2、chmodu=rwxfile  3、chmod721file2、基本权限ACL(1)使用get......
  • linux安装MySQL数据库初始化报错
    在使用如下初始化命令进行数据库初始化时报错,./bin/mysqld--user=mysql--basedir=/usr/local/mysql/mysql/--datadir=/usr/local/mysql/mysql/data/--initialize--lower-case-table-names=1; 权限不足导致,修改命令为:./bin/mysqld--user=root--basedir=/usr/local......
  • Linux文件权限01
    设置文件属性与权限三个常用的修改权限命令:chown修改文件属主,属组chgrp修改文件属组chmod修改文件权限例使用chown命令修改文件的属主从root改为Ybaci修改属主的同时修改属组,在属主与属组之间加入“.”即可只需要更改文件的属组而不需要更改属主,使用chgrp命令修改文件......
  • Linux常用命令(2)
    Linux常用命令(2)复制、移动mvdir1/usr/local/xxx把dir移动到/usr/local/xxxcp文件名/目标地址复制文件(cpdemo.txt/usr/local)文件搜索命令find/-namefile1从‘/’开始进入根文件系统搜索文件和目录查看进程详细信息ps-ef|grep进程名pgrep-l进程名管道命......
  • linux虚拟机 输出重定向
    经过上课实验以及老师的讲解,关于输出重定向,文件描述符的数字与"<"和">","<<"和">>"之间,不需要打上空格符号,否则会显示比如说:“无效的日期”。所以要记得数字和大小于符号之间不要加上空格,否则会出错误。......