如何对Linux系统进行压力测试

强调你的Linux服务器可以是一个好主意,如果你想看到的,当他们装下去他们如何运作。在这篇文章中,我们将看看一些工具,可以帮助你增加压力和评估结果。

DigitalSoul / Getty Images / Linux

为什么要给Linux系统增加压力呢?因为有时您可能想知道,当系统由于运行大量进程、沉重的网络流量、过量的内存使用等原因而承受很大压力时,系统将如何表现。这种测试有助于确保系统已经准备好“公开”。

如果您需要预测应用程序需要多长时间才能响应,以及哪些进程(如果有的话)可能会失败或在沉重的负载下缓慢运行,预先进行压力测试可能是一个非常好的主意。

对于那些需要能够预测Linux系统在压力下如何反应的人来说,幸运的是,可以使用一些有用的技术和工具来简化这个过程。在这篇文章中,我们研究了一些选择。

自己做循环

第一种技术包括在命令行上运行一些循环,并观察它们如何影响系统。这种技术通过极大地增加负载而加重了cpu的负担。的结果可以很容易地看到正常运行时间或类似的命令。

在下面的命令中,我们启动了四个无尽的循环。您可以通过增加数字或使用bash表达喜欢{6}1 . .代替" 1,2,3,4 "。

i在1 2 3 4;同时做;做的事:;做和做

在命令行上键入的这个命令将在后台启动四个无穷循环。

$ for i in 1 2 3 4;同时做;做的事:;[1] 205012 [2] 205013 [3] 205014 [4] 205015

在本例中,启动了作业1-4。同时显示了作业编号和进程id。

要观察它对平均负载的影响,可以使用如下所示的命令。在这种情况下,正常运行时间命令每30秒运行一次:

而真正的美元;正常运行时间;睡眠30;完成

如果您打算像这样定期运行测试,您可以将loop命令放到一个脚本中:

# !/bin/bash,当true做正常运行时睡眠30完成

在输出中,您可以看到负载平均是如何增加的,然后循环结束后又开始下降。

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

因为所显示的负载代表1、5和15分钟的平均值,所以需要一段时间才能恢复到系统可能的正常值。

要停止循环,发出a杀了命令如下—假设作业号为1-4,如本文前面所示。如果不确定,可以使用jobs命令来验证作业id。

$ kill % 1% % 2% % 3% %4

专门用来增加压力的工具

创建系统压力的另一种方法涉及使用专门为您构建的对系统施加压力的工具。其中一种叫做“压力”,它可以通过多种方式给系统带来压力。的压力工具是一个工作负载生成器,提供CPU、内存和磁盘I/O压力测试。

——cpu选项时,压力命令使用平方根函数强制cpu努力工作。指定的cpu数量越多,负载上升的速度就越快。

第二个看它脚本(watch-it-2)可用于测量对系统内存使用的影响。注意,它使用免费的看一下命令的压力效果。

$ cat watch-it-2 !/bin/bash,当true做free sleep 30完成

开始并观察压力:

$ stress——cpu 2
美元。/看13:09:14 5天,19:10,2的用户,平均负载:0.00,0.00,0.00 13:09:44 5天,19:11,2的用户,平均负载:0.68,0.16,0.05 13:10:14 5天,19:11,2的用户,平均负载:1.20,0.34,0.12 13:10:44 5天,19:12,2的用户,平均负载:1.52,0.50,0.18 13:11:14 5天,19:12,2的用户,平均负载:1.71,0.64,0.24 13:11:44 5天,19:13,2的用户,平均负载:1.83,0.77,0.30

命令行上指定的cpu越多,负载上升的速度就越快。

压力,cpu 4美元。/看13:47:49 5天,19:49,2的用户,平均负载:0.00,0.00,0.00 13:48:19 5天,19:49,2的用户,平均负载:1.58,0.38,0.13 13:48:49 5天,19:50,2的用户,平均负载:2.61,0.75,0.26 13:49:19 5天,19:50,2的用户,平均负载:3.16,1.06,0.38 13:49:49 5天,19:51,2的用户,平均负载:3.49,1.34,0.50 13:50:19 5天,19:51,2的用户,平均负载:3.69,1.60,0.61

压力命令还可以通过增加I/O和内存负载给系统增加压力——输入输出(输入/输出)——虚拟机(内存)选项。

在下一个示例中,运行添加内存压力的命令,然后运行watch-it-2脚本启动:

$ stress——vm 2
美元watch-it-2总使用免费共享buff/缓存可用Mem: 60870646621602519164 8868 2905740 5117548 Swap: 209714802097148总使用免费共享buff/缓存可用Mem: 60870648034642377832 8864 2905768 4976248 Swap: 209714802097148总使用免费共享buff/缓存可用Mem: 60870649685122212772 8864 2905780 4811200 Swap: 209714802097148

的另一个选择压力是使用——输入输出选项添加输入/输出活动到系统。在这种情况下,您将使用这样的命令:

$ stress—io 4

然后您可以观察压力IO使用iotop。请注意,iotop需要root特权。

之前
$ sudo iotop - o总磁盘读:0.00 B / s |总磁盘写入:19.36 K / s当前磁盘读:0.00 B / s |当前磁盘写入:27.10 K / s TID一家用户磁盘读取磁盘写入SWAPIN IO >命令269308 / 4根0.00 B / s 0.00 B / s 0.00% - 1.24% (kworker ~足够)283 / 3根0.00 B / s 19.36 K / s 0.00% - 0.26% [jbd2 / sda1-8]
当前磁盘读:0.00 B/s当前磁盘写:0.00 B/s TID PRIO用户磁盘读磁盘写SWAPIN IO>命令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 %51.36%应力—io 4 270985 be/4 shs 0.00 B/s 0.00 %50.95%应力—io 4 270982 be/4 shs 0.00 B/s 0.00 %50.80% stress—io 4 269308 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.09% [kworker~fficient]

压力只是给系统增加压力的众多工具之一。另一个更新的工具,stress-ng,将在以后的文章中介绍。

总结

用于对系统进行压力测试的各种工具将帮助您预测系统在面临流量和计算需求增加的现实情况下将如何响应。

虽然我们在这篇文章中展示的是创造和测量各种类型压力的方法,但最终的好处是压力如何帮助决定你的系统或应用程序对压力的反应。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。
相关:

版权©2020足球竞彩网下载

工资调查:结果在