Linux系统压力测试工具(命令行工具)

Linux的命令行压力测试工具在做基准测试时很有用,通过基准测试可以了解一个系统所能达到的最大性能指标,这些指标可以作为后续性能比较、优化评估的参考依据。

模拟CPU压力:

可以使用stress命令使CPU处于高负载状态。例如,通过stress -c 4命令(-c选项用于指定CPU的核数),会让系统的4个CPU核都处于高负载运算状态。这对于测试CPU的性能极限以及系统在CPU高负载下的响应能力很有帮助。比如,在测试服务器性能时,通过这种方式可以确定服务器在高CPU负载下是否会出现卡顿或者崩溃的情况。

模拟CPU打满:

stress -c 1 -t 100

#-c      产生n个进程(即 指定CPU的核数)
#-t N    指定运行N秒后停止
#-v      显示版本号
#-q      不显示运行信息
#-n      显示已完成的指令情况
#--backoff N   等待N微妙后开始运行
#-i     产生n个进程,每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上

模拟IO瓶颈:

fio 是一个灵活且功能强大的 Linux I/O(输入 / 输出)性能测试工具。它可以对磁盘、固态硬盘(SSD)、网络存储等各种存储设备进行多种类型的 I/O 操作测试,包括但不限于顺序读写、随机读写、混合读写等,并且能够模拟不同的 I/O 负载场景。

随机读:
#fio -name=randread -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 - runtime=1000 -group_reporting -filename=/dev/sdb 随机写:
#fio
-name=randwrite -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 - runtime=1000 -group_reporting -filename=/dev/sdb 顺序读:
#fio
-name=read -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=4k -size=1G -numjobs=1 - runtime=1000 -group_reporting -filename=/dev/sdb 顺序写:
# fio
-name=write -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=4k -size=1G

使用步骤:

1、创建初始化fileio文件(大小为2G):# sysbench --test=fileio --file-num=16 --file-totalsize=2G prepare

2、接下来开始对这些文件进行测试,使用16个线程随机读,命令:

# sysbench --test=fileio --file-total-size=2G --file-testmode=rndrd --max-time=180 --maxrequests=100000000 --num-threads=16 

--init-rng=on --file-num=16 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=16384 run

测试结果如下:

3、测试结束后,记得执行cleanup,以确保测试所产生的文件都已删除:
# sysbench --test=fileio --file-num=16 --file-totalsize=2G cleanup

模拟大流量:

iperf3 是一个用于网络吞吐量测量的工具,可以测试TCP、UDP或SCTP的吞吐量。

使用步骤:

1、客户端:
向目标地址10.20.81.33,5002端口,发一条TCP流,打印间隔为2s,发包时间为1000s

-c:client模式

# iperf3 -c 10.20.81.33 -p 5002 -i 2 -t 1000

2、服务端:

-s:server模式

-i:  每隔2秒输出一次测试的统计信息,如带宽、丢包率等相关数据,方便及时了解网络性能的动态变化情况

# iperf3 -s -p 5002 -i 2

通过在两台服务器上分别执行客户端和服务端命令,可以测试两台服务器之间的网络连接性能,确认是否能够满足数据传输的要求。

模拟端口禁用:

可以用iptables,iptables是Linux中的一个强大的防火墙工具

1、查看禁用列表
# iptables -L -n --line-number
2、禁用出口端口
# iptables -A OUTPUT -p tcp --sport 18004 -j DROP
3、禁用入口端口
# iptables -A INPUT -p tcp --dport 18004 -j DROP
4、删除入口端口编号
# iptables -D INPUT 1
5、删除出口端口编号
# iptables -D OUTPUT 1

Stress工具还提供了对内存,磁盘I/O做压力测试的命令。

Stress-ng是stress的增强版。

Sysbench主要用于数据库服务器(如MySQL)的性能测试,也可以用于测试系统的CPU、内存和磁盘I/O的性能。

 

posted @ 2024-11-04 18:57  海布里Simple  阅读(1042)  评论(0编辑  收藏  举报