在Linux系统下使用top命令查看CPU使用情况

在Linux系统下使用top命令查看CPU使用情况,第1张

  在Linux系统下,使用top命令查看CPU使用情况。

  %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  在Linux系统下使用top命令查看CPU使用情况,在Linux系统下使用top命令查看CPU使用情况,第2张

  us(user):表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有:数据库、Web 服务器等。

  sy(sys):表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。

  ni(nice):表示用 nice 修正进程优先级的用户进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销。

  id(idle):表示 CPU 处于空闲态的时间占比,此时,CPU 会执行一个特定的虚拟进程,名为 System Idle Process。

  hi(hardirq):表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行。

  si(sofTIrq):表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。

  st(steal):表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。

  排查用户 CPU 使用率高

  用户 CPU 使用率反映了应用程序的繁忙程度,通常与我们自己写的代码息息相关。

   *** 作步骤:

  1)、通过 top 命令找到 CPU 消耗最多的进程号;

  在Linux系统下使用top命令查看CPU使用情况,Linux下CPU使用率过高的排查方法,第3张

  2)、通过 top -Hp 进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID);

  在Linux系统下使用top命令查看CPU使用情况,在Linux系统下使用top命令查看CPU使用情况,第4张

  3)、通过printf “%x\n” 线程号命令输出该线程号对应的 16 进制数字;

  在Linux系统下使用top命令查看CPU使用情况,在Linux系统下使用top命令查看CPU使用情况,第5张

  4)、PID进程在内核调用情况。如果是Java应用可通过 jstack 进程号 | grep 16进制线程号 -A 10 命令找到 CPU 消耗最多的线程方法堆栈。

  是非 Java 应用可使用 perf

  perf top -p 7574

  如果提示perf: command not found,使用yum install perf安装。

  在Linux系统下使用top命令查看CPU使用情况,在Linux系统下使用top命令查看CPU使用情况,第6张

  perf是Linux 2.6+内核中的一个工具,在内核源码包中的位置 tools/perf。

  perf利用Linux的trace特性,可以用于实时跟踪,统计event计数(perf stat);或者使用采样(perf record),报告(perf report|script|annotate)的使用方式进行诊断。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2491265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存