测试工具
整理一些linux上常用测试工具
硬盘测试
fio
fio安装
yum install -y fio
fio参数说明
参数 | 说明 |
---|---|
direct=1 | 忽略缓存,直接写入磁盘 |
iodepth=128 | 请求的IO队列深度 |
rw=write | 读写策略,可选值randread(随机读),randwrite(随机写),read(顺序读),write(顺序写),randrw(混合随机读写) |
ioengine=libaio | IO引擎配置,建议使用libaio |
bs=4k | 块大小配置,可以使用4k,8k,16k等 |
size=200G | 测试生成文件的大小 |
numjobs=1 | 线程数配置 |
runtime=1000 | 测试运行时长,单位秒 |
group_reporting | 测试结果汇总展示 |
name=test | 测试任务名称 |
filename=/data/test | 测试输出的路径与文件名 |
测试使用
- 读时延
fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -size=200G -numjobs=1 -runtime=1000 -group_reporting -name=test -filename=/data/test
- 写时延
fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -size=200G -numjobs=1 -runtime=1000 -group_reporting -name=test -filename=/data/test
- 读带宽
fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=256k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
- 写带宽
fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=256k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
- 读IOPS
fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
- 写IOPS
fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
网络
iperf3
安装
yum -y install iperf3
下载地址:https://iperf.fr/iperf-download.php
iperf3参数说明
参数 | 说明 |
---|---|
-c | 客户端模式 |
-s | 服务端模式 |
-p | 指定端口号 |
-d | 打印调试信息 |
-P | 多线程 |
-u | 使用udb |
-t | 测试时间 |
-b | 带宽 |
-R | 双向测试 |
使用
- 基本使用
# 服务端
iperf3 -s
# 客户端
iperf3 -c 10.23.219.49
- 在tcp在100m带宽3个线程下双向测试10秒
iperf3 -c 10.23.219.49 -i -d -P 3 -R -t 10 -b 100M
- tcp测试
iperf3 -c 10.23.219.49 -R -P 10
- udp测试
侧重于看丢包
iperf3 -c 10.23.219.49 -u -b 10M
ethr
微软出的一个综合网络测试工具https://github.com/Microsoft/Ethr
参数
参数 | 说明 |
---|---|
-m | x 表示Ethr作为外部客户端模式与共它服务端对接 |
-c | 表示作为客户端模式连接服务端与iperf类似 |
-t | 表示测试类型 如TCP新建:c、TCP带宽:b、TCP延迟:l |
-n | 表示并发会话/线程数据0表示采用当前CPU数量 |
-d | 表示测试时长默认10s、0表示不限时长测试 |
erhr使用
# 服务端
ethr -s -ui -port 9999
# 客户端
ethr -c 192.168.1.1
-ui 开启一个文本界面
- tcp带宽测试
ethr -c 10.23.219.49 -t b -p tcp -n 0 -d 0
- tcp新建测试
ethr -c 10.23.219.49 -t c -p tcp -n 0 -d 0
- tcp 延迟测试
ethr -c 10.23.219.49 -t l -p tcp -n 0 -d 0
- udp pps测试
ethr -c 10.23.219.49 -t p -p udp -n 0 -d 0
web服务测试
ab(apachebench)
ab是apachebench的缩写最开始用来测试apache httpd的也可以用来测试其他web服务器
ab安装
yum -y install httpd-tools
- 测试
ab -c 10 -n 10 http://www.baidu.com/
-c 次数
-n 并发数
综合测试
sysbench
sysbench是个综合测试工具包括cpu硬盘数据等
安装sysbench
yum install -y sysbench
使用sysbench
- 测试cpu
sysbench --test=cpu --cpu-max-prime=20000 run
- 测试内存
sysbench --test=memory run
- 测试io
sysbench --test=fileio --file-test-mode=seqwr run
- 测试mysql
# 准备数据
sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-db=test --db-driver=mysql --tables=10 --table-size=1000 --time=10 prepare
# 执行测试
sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-db=test --db-driver=mysql --tables=10 --table-size=1000 --time=10 run
# 清理
sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-db=test --db-driver=mysql --tables=10 --table-size=1000 --time=10 cleanup
/usr/share/sysbench/下有很多测试脚本,根据测试需要填写,可以使用help命令查看参数,–help查看测试项的参数
k8s
- kubemark
- testkube
参考资料
https://linuxhint.com/use-sysbench-for-linux-performance-testing/