拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何检查Linux系统的压力

如何检查Linux系统的压力

白鹭 - 2022-01-06 2203 0 0

如果您想查看 Linux 服务器是否正常工作,压力测试是个好主意。

为什么要增加 Linux 系统的压力?

这是因为有时你可能想知道一个系统在大量运行的进程、大的网络流量、过多的内存使用等压力下会如何运行.此测试有助于确保系统已准备好供一般使用。

手动循环

第一种方法是在命令行上运行一些循环,看看它们如何影响系统。这种技术通过下载大量数据给 CPU 带来负担。使用正常运行时间或类似命令可以轻松查看结果。

在下面的命令中,开始了四个无限循环。您可以通过添加数字或使用诸如 {1.6} 之类的 bash 表达式而不是“1 2 3 4”来增加循环次数。

for i in 1 2 3 4;做同时:;做 : ;完成&完成

进入命令行,这个命令会在系统平台上启动四个无限循环。

$ for i in 1 2 3 4;做同时:;做 : ;完成&完成 [1] 205012 [2] 205013 [3] 205014 [4] 205015

在这种情况下,会话 1-4 已经开始。显示会话号和进程 ID。

要观察高于平均负载的效果,请使用如下所示的命令。在这种情况下,uptime 命令每 30 秒运行一次:

$ while true;做正常运行时间;睡30;完成

如果你打算定期运行测试,你可以设置循环命令如下:

#!/bin/bash while true do uptime sleep 30 done

在输出中,您可以看到平均负载增加,然后随着循环结束而开始减少。

 11:25:34 up 5 days, 17:27, 2 users, load average: 0.15, 0.14, 0.08 11:26:04 up 5 days, 17:27, 2个用户,平均负载:0.09, 0.12, 0.08 11:26:34 up 5 days, 17:28, 2 users, load average: 1.42, 0.43, 0.18 11:27:04 up 5 days, 17:28, 2 users , load average: 2.50, 0.79, 0.31 11:27:34 up 5 days, 17:29, 2 users, load average: 3.09, 1.10, 0.43 11:28:04 up 5 days, 17:29, 2 users, load平均:3.45, 1.38, 0.54 11:28:34 up 5 days, 17:30, 2 users, load average: 3.67, 1.63, 0.66 11:29:04 up 5 days, 17:30, 2 users, load average: 3.80, 1.86, 0.76 11:29:34 up 5 days, 17:31, 2 users, load average: 3.88, 2.06, 0.87 11:30:04 up 5 days, 17:31, 2 users, load average: 3.93, 2.25, 0.97 11:30:34 up 5 days, 17:32, 2 users, load average: 3.64, 2.35, 1.04 <== loops 11:31:04 up 5 days, 17:32, 2 users, load average : 2.20, 2.13, 1.01 停止 11:31:34 up 5 days, 17:33, 2 users, load average: 1.40, 1.94, 0.98

因为负载在1、5、15分钟内平均,系统需要一段时间才能恢复正常。

要停止循环,发出如下所示的 kill 命令-假设会话数为 1-4,如上所示。如果您不确定,请使用作业命令来验证会话 ID。

$ kill %1 %2 %3 %4

给系统增加压力的专用工具

另一种创建相关系统压力的方法是使用内置的工具为您增加系统压力。其中之一称为“压力”,可以通过多种方式增加系统压力。压力添加工具是一个会话卷生成器,提供CPU、内存和磁盘的I/O压力测试。

通过--cpu 选项,stress 命令使用平方根函数来强制 CPU 更加努力地工作。指定的 CPU 数量越多,负载增加的速度就越快。

watch-it-2 命令可以用来评估系统内存使用的效率。注意它使用free命令来查看压力反馈。

$ cat watch-it-2 #!/bin/bash while true do free sleep 30 done

开始监控系统压力:

$ stress--cpu 2
$./watch-it 13:09:14 up 5 days, 19:10, 2 users, load average: 0.00, 0.00, 0.00 13:09:44 up 5 days, 19:11, 2 users, load average: 0.68, 0.16, 0.05 13:10:14 up 5 days, 19:11, 2 users, load average: 1.20, 0.34, 0.12 13:10:44 up 5 days, 19:12, 2 个用户, 平均负载: 1.52, 0.50, 0.18 13:11:14 上升 5 天, 19:12, 2 个用户, 平均负载: 1.71, 0.64, 0.24 13:11:44up 5 days, 19:13, 2 users, load average: 1.83, 0.77, 0.30

命令行指定的 CPU 越多,加载速度越快。

$ stress--cpu 4 $./watch-it 13:47:49 up 5 days, 19:49, 2 users, load average: 0.00, 0.00, 0.00 13 :48:19 up 5 days, 19:49, 2 users, load average: 1.58, 0.38, 0.13 13:48:49 up 5 days, 19:50, 2 users, load average: 2.61, 0.75, 0.26 13:49 :19 up 5 days, 19:50, 2 users, load average: 3.16, 1.06, 0.38 13:49:49 up 5 days, 19:51, 2 users, load average: 3.49, 1.34, 0.50 13:50:19 up 5 days, 19:51, 2 users, load average: 3.69, 1.60, 0.61

stress 命令还可以通过添加 I/O 和使用--io(输入/输出)和--vm(内存)选项加载内存来对系统施加压力。

比如这个命令加上要运行的内存压力,然后用watch-it-2开始:

$ stress--vm 2
$ watch-it-2 总已用免费共享 buff/缓存可用内存:6087064 662160 2519164 8868 2905740 5117548 交换:2097148 0 2097148 总已用免费共享缓存/可用缓存6087064 803464 2377832 8864 2905768 4976248 Swap: 2097148 0 2097148 总已用免费共享 buff/缓存可用内存: 6087064 968512 22047 22986 或者,您可以使用--io 选项向系统添加输入/输出操作。在这种情况下,使用命令:

$ stress--io 4

然后可以用碘观察IO压力水平。注意 iotop 需要 root 访问权限。

之前

$ sudo iotop-o Total DISK READ: 0.00 B/s |总磁盘写入:19.36 K/s 当前磁盘读取:0.00 B/s |当前磁盘写入:27.10 K/s TID PRIO 用户磁盘读取磁盘写入 SWAPIN IO> COMMAND 269308 be/4 root 0.00 B/s 0.00 B/s 0.00 % 1.24 % [kworker~fficient] 283 be/3 root 0.00 B/s 19.36 K/s 0.00 % 0.26 % [jbd82/s]>

之后

总磁盘读取:0.00 B/s |总磁盘写入:0.00 B/s 当前磁盘读取:0.00 B/s |当前磁盘写入:0.00 B/s TID PRIO 用户磁盘读取磁盘写入 SWAPIN IO> COMMAND 270983 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 51.45 % 压力--io 4 270984 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 51.394 % 2 7 sh 4 % 压力0.00 B/s 0.00 B/s 0.00 % 50.95 % 应力--io 4 270982 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 50.80 % 应力--io 4 269308 be.000 s B/4 根/s 0.00 % 0.09 % [kworker~高效]

总结

系统压力测试工具将帮助您了解操作系统在现实生活中的反应。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *