有时候为了测量硬盘IO的极限性能。我们会开启多进程的方式,如fio中的numjobs。vdbench中也有类似的参数,经查阅手册发现,设置vdbench的配置文件中jvms=nn
即可。
这时候有了一个疑问,如果设运行时间elapsed
非常大。maxdata=10G
,那么整个程序是跑完40G才结束,还是一起跑完10G就结束了呢?在fio中是跑完40G才会结束。而在vdbench中,经过实验,发现其是JVMs一共跑完10G结束。即vdbench一共需要读写maxdata
大的数据,而不是 jvms × maxdata
的数据。
实验步骤
- 准备一个配置文件,
4k-read-16-jvms4.txt
。文件内容如下:
hd=default,vdbench=/root/vdbench50406,user=root,jvms=4
sd=sd1,lun=/dev/sdb,openflags=o_direct,threads=16
wd=wd1,sd=sd*,rdpct=100,seekpct=100,xfersize=4k
rd=rd1,wd=wd1,iorate=max,elapsed=600,format=restart,maxdata=10G,interval=5,warmup=30
Note:配置文件中jvms=4前面,user=root后面,不能加空格哦,否则只能开启一个进程。
2. 调用cat /proc/diskstats
,查看/dev/sdb
读了多少次。
[root@node1 nvme_test]# cat /proc/diskstats
11 0 sr0 0 0 0 0 0 0 0 0 0 0 0
8 16 sdb 20297933 51 162388576 28350597 0 0 0 0 0 1805030 28338667
8 0 sda 8759 48 632577 49030 19552 2755 305227 47172 0 28043 96051
8 1 sda1 2032 0 52020 2398 34 0 4216 115 0 1023 2509
8 2 sda2 6696 48 577213 46422 19518 2755 301011 47057 0 27585 93329
253 0 dm-0 6851 0 568037 49260 22274 0 301011 57464 0 27542 106724
253 1 dm-1 90 0 4920 421 0 0 0 0 0 338 421
可以看出sdb目前已经读了20297933次。
- 接下来检测
jvms=4
的情况,即运行4k-read-16-jvms4.txt
这个配置文件。看看多线程时的情况。
[root@node1 nvme_test]# ../vdbench50406/vdbench -f 4k-read-16-jvms4.txt -o 4k-read-16-jvms4
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50406 Wed July 20 15:49:52 MDT 2016
For documentation, see 'vdbench.pdf'.
10:09:02.320 input argument scanned: '-f4k-read-16-jvms4.txt'
10:09:02.321 input argument scanned: '-o4k-read-16-jvms4'
10:09:02.505 Starting slave: /root/vdbench50406/vdbench SlaveJvm -m localhost -n localhost-10-220826-10.09.02.273 -l localhost-0 -p 5570
10:09:02.525 Starting slave: /root/vdbench50406/vdbench SlaveJvm -m localhost -n localhost-11-220826-10.09.02.273 -l localhost-1 -p 5570
10:09:02.546 Starting slave: /root/vdbench50406/vdbench SlaveJvm -m localhost -n localhost-12-220826-10.09.02.273 -l localhost-2 -p 5570
10:09:02.567 Starting slave: /root/vdbench50406/vdbench SlaveJvm -m localhost -n localhost-13-220826-10.09.02.273 -l localhost-3 -p 5570
10:09:03.094 All slaves are now connected
10:09:04.002 Starting RD=rd1; I/O rate: Uncontrolled MAX; elapsed=600 warmup=30; For loops: None
八月 26, 2022 interval i/o MB/sec bytes read resp read write resp resp queue cpu% cpu%
rate 1024**2 i/o pct time resp resp max stddev depth sys+u sys
10:09:09.065 1 8320.20 32.50 4096 100.00 1.763 1.763 0.000 17.332 1.210 14.7 6.2 2.0
10:09:14.049 2 8631.40 33.72 4096 100.00 1.839 1.839 0.000 20.747 1.191 15.9 2.7 1.6
10:09:19.072 3 9101.80 35.55 4096 100.00 1.752 1.752 0.000 13.134 1.058 15.9 2.3 1.6
10:09:24.054 4 8642.20 33.76 <