整理一些linux上常用测试工具
硬盘测试
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 |
测试输出的路径与文件名 |
测试使用
1
| fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -size=200G -numjobs=1 -runtime=1000 -group_reporting -name=test -filename=/data/test
|
1
| fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -size=200G -numjobs=1 -runtime=1000 -group_reporting -name=test -filename=/data/test
|
1
| fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=256k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
|
1
| fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=256k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
|
1
| fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -size=200G -numjobs=4 -runtime=1000 -group_reporting -name=test -filename=/data/test
|
1
| 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
安装
下载地址:https://iperf.fr/iperf-download.php
参数说明
参数 |
说明 |
-c |
客户端模式 |
-s |
服务端模式 |
-p |
指定端口号 |
-d |
打印调试信息 |
-P |
多线程 |
-u |
使用udb |
-t |
测试时间 |
-b |
带宽 |
-R |
双向测试 |
使用
1 2 3 4
| # 服务端 iperf3 -s # 客户端 iperf3 -c 10.23.219.49
|
1
| iperf3 -c 10.23.219.49 -i -d -P 3 -R -t 10 -b 100M
|
1
| iperf3 -c 10.23.219.49 -R -P 10
|
侧重于看丢包
1
| 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使用
1 2 3 4 5
| # 服务端 ethr -s -ui -port 9999 # 客户端
ethr -c 192.168.1.1
|
-ui 开启一个文本界面
1
| ethr -c 10.23.219.49 -t b -p tcp -n 0 -d 0
|
1
| ethr -c 10.23.219.49 -t c -p tcp -n 0 -d 0
|
1
| ethr -c 10.23.219.49 -t l -p tcp -n 0 -d 0
|
1
| ethr -c 10.23.219.49 -t p -p udp -n 0 -d 0
|
web服务测试
ab(apachebench)
ab是apachebench的缩写最开始用来测试apache httpd的也可以用来测试其他web服务器
ab安装
1
| yum -y install httpd-tools
|
1
| ab -c 10 -n 10 http://www.baidu.com/
|
综合测试
sysbench
sysbench是个综合测试工具包括cpu硬盘数据等
安装sysbench
使用sysbench
1
| sysbench --test=cpu --cpu-max-prime=20000 run
|
1
| sysbench --test=memory run
|
1
| sysbench --test=fileio --file-test-mode=seqwr run
|
1 2 3 4 5 6 7 8
| # 准备数据 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
参考资料
https://mp.weixin.qq.com/s?src=11×tamp=1665469357&ver=4097&signature=UHpleVGTVCM4lwywMQ3B9xfQXA0H5tOi8Ju3nw9YxPQNHo9KazyAmpeLLBvXOFJh9O5OPzrsxoVkF5SCso0kIu9HlAD5EuZ9tffPaTfbVBn0QLf8h0PURQoTCtHOxjkK&new=1
https://linuxhint.com/use-sysbench-for-linux-performance-testing/