Linux压测和硬件测试命令
硬盘
使用fio命令来进行硬盘测试。
安装:sudo apt install fio
基本参数如下:
1 | filename=/dev/emcpowerb 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb |
随机读
向磁盘写一个2G文件,10线程,随机读1分钟
1 | fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest |
随机写
1 | fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest |
顺序读
1 | fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest |
顺序写
1 | fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest |
网络
测试局域网内设备之间的网速, 使用iperf3 进行测试。
安装:
- ubuntu:
apt install iperf3
- windows: 去官网下载文件直接解压, 然后使用cmd运行即可
在局域网内某台服务器上(假设该台机器IP为10.0.0.239)启动iperf3
1
iperf3 -s
在局域网内的另一台机器上运行命令:
1
iperf3 -c 10.0.0.239
即可得到网速输出结果
CPU
使用stress来进行。
安装: apt install stress
主要参数:
- -c, –cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根
- -i, –io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
- -m, –vm N 产生 N 个进程,每个进程不断分配和释放内存
- –vm-bytes B 指定分配内存的大小
- –vm-stride B 不断的给部分内存赋值,让 COW(Copy On Write)发生
- –vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程
- –vm-keep 一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
- -d, –hadd N 产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件)
- –hadd-bytes B 指定文件大小
- -t, –timeout N 在 N 秒后结束程序
- –backoff N 等待N微妙后开始运行
- -q, –quiet 程序在运行的过程中不输出信息
- -n, –dry-run 输出程序会做什么而并不实际执行相关的操作
- –version 显示版本号
- -v, –verbose 显示详细的信息
压满CPU命令,其中4是CPU核心数。通过调用 sqrt 函数计算由 rand 函数产生的随机数的平方根实现。
1 | stress -c 4 |
在压测过程中每隔1s实时显示主频:
1 | watch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\"" |
评论