文章详情页 您现在的位置是:网站首页>文章详情

CPU性能——系统负载

图片丢失 Jeyrce.Lu 发表于:2020年7月29日 20:37 分类:【服务器 2166次阅读

平均负载

平均负载指的是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数。

jeeyshe@jeeyshe-PC:~$ uptime 
 19:45:47 up 12:19,  1 user,  load average: 0.42, 0.54, 0.29
 
 # 输出分别是 当前系统时间  系统运行时间 当前登录用户数量  过去 1m、5m、15m的平均负载(load average)

可运行状态

正在使用cpu或者正在等待cpu的进程,我们可以通过ps查到的处于RUNNING或者Runnable状态的进程。

不可中断状态

处于内核态关键流程的进程,进程不可打断,如阻塞IO,我们可以在ps命令中查看到处于Uninterruptible Sleep 或 Disk Sleep状态的进程,这种进程是一种对硬件的保护机制。

合理的平均负载

最为理想的平均负载为1,即一个cpu对应一个进程是操作系统最为理想的状态,此时系统负载低且cpu得到充分利用。

jeeyshe@jeeyshe-PC:~$ cat /proc/cpuinfo |grep "model name"
model name	: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
model name	: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
model name	: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
model name	: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz

可以查看cpu个数,当平均负载大于cpu个数,则系统处于过载状态。通过最近1m、5m、15m的负载变化也可反映出系统负载的趋势。一般来说当cpu负载达到70%时就需要做排查对系进行统优化了。

平均负载和cpu使用率

系统负载包含了正在使用、等待cpu、等待IO三部分的进程,而cpu使用率是针对正在使用cpu的进程,因此二者可能并不统一。

(1)CPU密集型进程,此时二者一致,都会升高。

(2)I/O密集型进程,负载一定会升高,CPU使用率有可能空闲也有可能繁忙。

(3)大量等待CPU调度的进程,平均负载和CPU使用率都会高。

系统负载分析工具

sudo apt install stress sysstat

安装完成之后会得到stress、mpstat、pidstat三个命令工具,可用于实时查看CPU、内存、IO及上下文等性能指标。

(1)CPU密集型进程模拟

stress --cpu 1 --timeout 600

# 另一个终端查看系统负载
20:15:52 up 12:49,  1 user,  load average: 1.44, 0.81, 0.42


# 第三个终端查看cpu使用率
jeeyshe@jeeyshe-PC:~$ mpstat -P ALL 5
Linux 5.3.0-3-amd64 (jeeyshe-PC) 	2020年07月29日 	_x86_64_	(4 CPU)

20时16分39秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时16分44秒  all   28.66    0.00    4.32    0.00    0.00    0.25    0.00    0.00    0.00   66.77
20时16分44秒    0    4.94    0.00    4.55    0.00    0.00    0.00    0.00    0.00    0.00   90.51
20时16分44秒    1    1.59    0.00    0.79    0.00    0.00    0.79    0.00    0.00    0.00   96.83
20时16分44秒    2    8.79    0.00   12.13    0.00    0.00    0.00    0.00    0.00    0.00   79.08
20时16分44秒    3   98.80    0.00    0.20    0.00    0.00    0.20    0.00    0.00    0.00    0.80

# 查看进程情况
jeeyshe@jeeyshe-PC:~$ pidstat -u 5 1
Linux 5.3.0-3-amd64 (jeeyshe-PC) 	2020年07月29日 	_x86_64_	(4 CPU)

20时18分05秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
20时18分10秒     0       953    0.00    0.20    0.00    0.00    0.20     2  vmtoolsd
20时18分10秒     0      1608   13.17    2.99    0.00    1.40   16.17     3  Xorg
20时18分10秒  1000      2004    0.00    0.20    0.00    0.20    0.20     2  dbus-daemon
20时18分10秒  1000      2123    0.00    6.59    0.00    1.80    6.59     2  kwin_x11
20时18分10秒  1000      2159    0.20    0.20    0.00    0.00    0.40     2  dde-session-dae
20时18分10秒  1000      2185    0.00    0.20    0.00    0.00    0.20     2  dde-dock
20时18分10秒  1000      2822    0.40    0.60    0.00    0.40    1.00     2  deepin-terminal
20时18分10秒  1000      2840    0.20    0.00    0.00    0.00    0.20     2  chromium
20时18分10秒  1000      5470    0.80    0.40    0.00    0.00    1.20     1  java
20时18分10秒  1000      5507    1.00    0.40    0.00    0.00    1.40     2  java
20时18分10秒  1000      5538    0.00    0.20    0.00    0.00    0.20     1  java
20时18分10秒  1000      6558    0.20    0.00    0.00    0.00    0.20     3  dde-lock
20时18分10秒  1000     20148    0.20    0.20    0.00    0.00    0.40     0  chromium
20时18分10秒  1000     29158    0.00    0.40    0.00    0.00    0.40     3  dde-launcher
20时18分10秒  1000     32705    0.40    0.40    0.00    0.20    0.80     0  chromium
20时18分10秒     0     33699    0.00    0.20    0.00    0.00    0.20     0  kworker/0:3-events
20时18分10秒  1000     35254   99.80    0.00    0.00    0.00   99.80     1  stress
20时18分10秒  1000     35412    0.00    0.20    0.00    0.00    0.20     0  pidstat

可以观察到三个现象:A: 1m的系统负载逐渐升高。B: 有一个CPU使用率接近100%但是io等待接近0. C: 可以看到stress进程CPU使用率接近100%.

(2)IO密集型进程模拟

stress -i 1 --timeout 600

# 同样使用其他终端查看系统负载和cpu使用率

可以观察到三个现象,A: 1m系统负载逐渐升高到1以上. B: 有一个CPU的使用率达到了35%, iowait升高到了50%。C: 可查看到stress进程cpu使用率高。

(3)大量进程模拟

stress -c 16 --timeout 600

此处我们拥有4CPU,但是我们模拟了16进程的情况,可以观察到,A: 1m系统负载逐渐上升到4.x。 B: mpstat观察到所有CPU使用率升高到100%附近。 C: pidstat查看到大量stress进程系统负载高且等待高。


版权声明 本文属于本站  原创作品,文章版权归本站及作者所有,请尊重作者的创作成果,转载、引用自觉附上本文永久地址: http://blog.lujianxin.com/x/art/hxxs0y6fluzn

文章评论区

作者名片

图片丢失
  • 作者昵称:Jeyrce.Lu
  • 原创文章:61篇
  • 转载文章:3篇
  • 加入本站:1831天

站点信息

  • 运行天数:1832天
  • 累计访问:164169人次
  • 今日访问:0人次
  • 原创文章:69篇
  • 转载文章:4篇
  • 微信公众号:第一时间获取更新信息