平均负载

为君一笑 提交于 2020-07-28 17:18:36

uptime

用于查找系统变慢的原因。

02:34:03 up 2 days, 20:14,  1 user,  load average: 0.63, 0.83, 0.88
02:34:03              //当前时间
up 2 days, 20:14      //系统运行时间
1 user                //正在登录用户数

而最后三个数字呢,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系

可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。

不可中断状态的进程则是正处于内核态关键流程中的进程,

并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

系统CPU个数: grep 'model name' /proc/cpuinfo | wc -l

CPU密集型分析步骤:

  1. watch -d uptime 运行 uptime 查看平均负载的变化情况
  2. mpstat -P ALL 5 运行 mpstat 查看 CPU 使用率的变化情况, CPU 的使用率为 100%,但它的 iowait 只有 0
  3. pidstat -u 5 1 到底是哪个进程导致了 CPU 使用率为 100% 呢?你可以使用 pidstat 来查询

I/O密集型

  1. watch -d uptime
  2. mpstat -P ALL 5 1 系统 CPU 使用率升高到了 23.87,而 iowait 高达 67.53%
  3. pidstat -u 5 1

模拟工具 stress stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。

  1. stress --cpu 1 --timeout 600 模拟一个 CPU 使用率 100% 的场景
  2. stress -i 1 --timeout 600 模拟 I/O 压力,即不停地执行 sync
  3. stress -c 8 --timeout 600 模拟大量进程的场景

安装方法:apt install stress

分析工具

  1. iostat
  2. mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。
  3. pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

安装方法:apt install sysstat

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!