Linux怎么进行压力测试

Linux怎么进行压力测试

这篇文章主要介绍“Linux怎么进行压力测试”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux怎么进行压力测试”文章能帮助大家解决问题。

软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单: 不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。 通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。

自己动手做个循环

第一种技术是在命令行上运行一些循环,观察它们对系统的影响。这种方式可以大大增加 CPU 的负荷。使用 uptime 或类似的命令可以很容易地看到结果。

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

foriin1234;dowhile:;do:;done&done

在命令行上输入后,将在后台启动四个无尽循环:

$foriin1234;dowhile:;do:;done&done[1]205012[2]205013[3]205014[4]205015

在这种情况下,发起了作业 1-4,作业号和进程号会相应显示出来。

要观察对平均负载的影响,请使用如下所示的命令。在本例中,uptime 命令每 30 秒运行一次:

$whiletrue;douptime;sleep30;done

如果你打算定期运行这样的测试,你可以将循环命令放入脚本 watch-it 中。

#!/bin/bashwhiletruedouptimesleep30done

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

11:25:34up5days,17:27,2users,loadaverage:0.15,0.14,0.0811:26:04up5days,17:27,2users,loadaverage:0.09,0.12,0.0811:26:34up5days,17:28,2users,loadaverage:1.42,0.43,0.1811:27:04up5days,17:28,2users,loadaverage:2.50,0.79,0.3111:27:34up5days,17:29,2users,loadaverage:3.09,1.10,0.4311:28:04up5days,17:29,2users,loadaverage:3.45,1.38,0.5411:28:34up5days,17:30,2users,loadaverage:3.67,1.63,0.6611:29:04up5days,17:30,2users,loadaverage:3.80,1.86,0.7611:29:34up5days,17:31,2users,loadaverage:3.88,2.06,0.8711:30:04up5days,17:31,2users,loadaverage:3.93,2.25,0.9711:30:34up5days,17:32,2users,loadaverage:3.64,2.35,1.04

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

要停止循环,请发出像下面这样的 kill 命令 —— 假设作业号是 1-4,就像本篇文章前面显示的那样。如果你不确定,可以使用 jobs 命令来确认作业号。

$kill%1%2%3%4

增加压力的专用工具

另一种方法是使用专门为你制造系统压力的工具。其中一种叫做 stress(压力),可以以多种方式对系统进行压力测试。stress 工具是一个工作负载生成器,提供 CPU、内存和磁盘 I/O 压力测试。

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

下面第二个脚本(watch-it-2)可以用来衡量对系统内存使用的影响。请注意,它使用 free 命令来查看加压的效果。

$catwatch-it-2#!/bin/bashwhiletruedofreesleep30done

发起任务并观察压力:

$stress--cpu2$./watch-it13:09:14up5days,19:10,2users,loadaverage:0.00,0.00,0.0013:09:44up5days,19:11,2users,loadaverage:0.68,0.16,0.0513:10:14up5days,19:11,2users,loadaverage:1.20,0.34,0.1213:10:44up5days,19:12,2users,loadaverage:1.52,0.50,0.1813:11:14up5days,19:12,2users,loadaverage:1.71,0.64,0.2413:11:44up5days,19:13,2users,loadaverage:1.83,0.77,0.30

在命令行中指定的 CPU 越多,负载就增加的越快。

$stress--cpu4$./watch-it13:47:49up5days,19:49,2users,loadaverage:0.00,0.00,0.0013:48:19up5days,19:49,2users,loadaverage:1.58,0.38,0.1313:48:49up5days,19:50,2users,loadaverage:2.61,0.75,0.2613:49:19up5days,19:50,2users,loadaverage:3.16,1.06,0.3813:49:49up5days,19:51,2users,loadaverage:3.49,1.34,0.5013:50:19up5days,19:51,2users,loadaverage:3.69,1.60,0.61

stress 命令也可以通过 --io(输入/输出)和 --vm(内存)选项增加 I/O 和内存的负载来给系统施加压力。

在接下来的这个例子中,运行这个增加内存压力的命令,然后启动 watch-it-2 脚本。

$stress--vm2$watch-it-2totalusedfreesharedbuff/cacheavailableMem:60870646621602519164886829057405117548Swap:209714802097148totalusedfreesharedbuff/cacheavailableMem:60870648034642377832886429057684976248Swap:209714802097148totalusedfreesharedbuff/cacheavailableMem:60870649685122212772886429057804811200Swap:209714802097148

stress 的另一个选项是使用 --io 选项为系统添加输入/输出活动。在这种情况下,你可以使用这样的命令:

$stress--io4

然后你可以使用 iotop 观察受压的 I/O。注意,运行 iotop 需要 root 权限。

之前:

$sudoiotop-oTotalDISKREAD:0.00B/s|TotalDISKWRITE:19.36K/sCurrentDISKREAD:0.00B/s|CurrentDISKWRITE:27.10K/sTIDPRIOUSERDISKREADDISKWRITESWAPINIO>COMMAND269308be/4root0.00B/s0.00B/s0.00%1.24%[kworker~fficient]283be/3root0.00B/s19.36K/s0.00%0.26%[jbd2/sda1-8]

之后:

TotalDISKREAD:0.00B/s|TotalDISKWRITE:0.00B/sCurrentDISKREAD:0.00B/s|CurrentDISKWRITE:0.00B/sTIDPRIOUSERDISKREADDISKWRITESWAPINIO>COMMAND270983be/4shs0.00B/s0.00B/s0.00%51.45%stress--io4270984be/4shs0.00B/s0.00B/s0.00%51.36%stress--io4270985be/4shs0.00B/s0.00B/s0.00%50.95%stress--io4270982be/4shs0.00B/s0.00B/s0.00%50.80%stress--io4269308be/4root0.00B/s0.00B/s0.00%0.09%[kworker~fficient]

stress 只是给系统增加压力的若干工具之一。

关于“Linux怎么进行压力测试”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-02-16 23:33:37
收藏
分享
海报
0 条评论
33
上一篇:中国陈醋10大排名(盘点中国十大名醋排行榜) 下一篇:Linux的cowsay命令怎么用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码