Linux排查Load过高问题

版权声明:分享技术,共同进步。欢迎转载,评论,吐槽~ https://blog.csdn.net/m0_38110132/article/details/84187399

情况1:CPU高、Load高

  1. 通过top命令查找占用CPU最高的进程PID;
  2. 通过top -Hp PID查找占用CPU最高的线程TID;
  3. 对于java程序,使用jstack打印线程堆栈信息;
  4. 通过printf %x tid打印出最消耗CPU线程的十六进制;
  5. 在堆栈信息中查看该线程的堆栈信息;

情况2:CPU低、Load高

  1. 通过top命令查看CPU等待IO时间,即%wa;
  2. 通过iostat -d -x -m 1 10查看磁盘IO情况;(安装命令 yum install -y sysstat)
  3. 通过sar -n DEV 1 10查看网络IO情况;
  4. 通过如下命令查找占用IO的程序;
ps -e -L h o state,cmd  | awk '{if($1=="R"||$1=="D"){print $0}}' | sort | uniq -c | sort -k 1nr

5. sar 5 6  每个5s 输出6次

16时13分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
16时13分06秒     all      9.15      0.00     48.19      0.05      0.00     42.61
16时13分11秒     all      2.13      0.00      8.76      0.08      0.00     89.03
16时13分16秒     all      2.13      0.00     11.41      0.03      0.00     86.44
16时13分21秒     all      2.20      0.00     10.61      0.05      0.00     87.14
16时13分26秒     all      2.48      0.00     10.44      0.08      0.00     87.00
16时13分31秒     all      2.40      0.00     10.51      0.05      0.00     87.00

注:

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

相关工具使用介绍:

sar用法详解 :Linux的sar命令详解

iostat用法详解:Linux IO实时监控iostat命令详解

vmstat用法详解:Linux vmstat命令实战详解

猜你喜欢

转载自blog.csdn.net/m0_38110132/article/details/84187399