• SSD가 설치된 가상머신에서 Vdbench를 이용해 disk 성능 측정 (Update: Apr 19, 2021)

환경 구성

  • OS: Ubuntu 20.04 on VM
  • CPU: 1 way, 6 cores (No HyperThreading)
  • Vdbench: v5.04.07
  • SSD: WD Black NVMe

1. Vdbench 와 실행에 필요한 java 패키지 설치

;Oracle 사이트의 Vdbench Downloads 에서 다운 받아 압축을 풀면 됩니다

USER1@VM1:~$ sudo apt install -y java*
USER1@VM1:~$ cd ~/download/vdbench ; unzip ./vdbench50407.zip ; ls -al
drwxrwxr-x 2 USER1 USER1      4096 Apr 19 12:50 ./
drwx------ 8 USER1 USER1      4096 Apr 14 12:45 ../
(...생략...)
-rwxrwxrwx  1 USER1 USER1    1314 Jul 15  2016 vdbench
-rw-rw-r--  1 USER1 USER1 3073219 Apr 16 06:19 vdbench50407.zip
(...생략...)

2. Vdbench quick simple test

USER1@VM1:~/download/vdbench$ ./vdbench -t
13:39:52.501 Created output directory '/home/USER1/download/vdbench/output'
13:39:52.535 input argument scanned: '-f/tmp/parmfile'
13:39:52.576 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-10-210419-13.39.52.486 -l localhost-0 -p 5570   
13:39:52.789 All slaves are now connected
13:39:52.844 Vdbench will attempt to expand a disk file if the requested file size is a multiple of 1mb
13:39:52.844 lun=/tmp/quick_vdbench_test does not exist or is too small. host=localhost
13:39:54.001 Starting RD=SD_format; I/O rate: Uncontrolled MAX; elapsed=(none); For loops: threads=2 iorate=max
13:39:54.132 All sequential workloads on all slaves are done.
13:39:54.132 This triggers end of run inspite of possibly some non-sequential workloads that are still running.

Apr 19, 2021    interval        i/o   MB/sec   bytes   read     resp     read    write     read    write     resp  queue  cpu%  cpu%
                               rate  1024**2     i/o    pct     time     resp     resp      max      max   stddev  depth sys+u   sys
13:39:55.045           1      320.0    40.00  131072   0.00    0.119    0.000    0.119     0.00     0.26    0.018    0.0   5.5   1.5
13:39:55.052     avg_2-1        0.0     0.00       0   0.00    0.000    0.000    0.000     0.00     0.00    0.000    0.0   NaN   NaN
(...생략...)
13:40:02.001 Vdbench execution completed successfully. Output directory: /home/USER1/download/vdbench/output

USER1@VM1:~/download/vdbench$ ls output/
config.html     localhost-0.html             logfile.html        sd1.html      swat_mon_total.txt  wd1.html
errorlog.html   localhost-0.stdout.html      parmfile.html       skew.html     swat_mon.txt
flatfile.html   localhost.html               parmscan.html       status.html   totals.html
histogram.html  localhost.var_adm_msgs.html  sd1.histogram.html  summary.html  wd1.histogram.html

3-1. Raw Device I/O 테스트와 결과

;SD 매개변수로 lun=/dev/sda (Name of raw disk)를 사용하는 경우

USER1@VM1:~/download/vdbench$ df -h |grep ^/dev
/dev/sda4       121G  8.8G  106G   8% /
/dev/sda2       976M  294M  616M  33% /boot
(...생략...)

USER1@VM1:~/download/vdbench$ cat vdbench_param/param.txt

sd=sd1,lun=/dev/sda,openflag=o_direct
wd=wd1,sd=sd1,xfersize=4K,rdpct=0,seekpct=100
rd=rd1,wd=wd1,iorate=max,elapsed=180,interval=1,threads=16

#180초 동안 I/O rate max로 4k 블록, 100% random write, 1초마다 출력  
#상세 옵션은 압축 파일에 포함된 vdbench.pdf 파일을 참고  

# SD (Storage Definition) parameters
#'lun=/dev/sda': Name of raw disk or file system file. e.g. lun=/home/USER1/10gFile
#'lun=/home/USER1/10gFile'
#     /home/USER1/10gFile: Solaris file system filename. No control over physical I/O guaranteed since the file system may use system cache.
#'openflag=o_direct': Pass specific flags when opening a lun or file
#          o_direct : Gives you raw access to a full volume (no partition). This parameter is required when using /dev/xxx volumes
#'iorate=max': Run the maximum I/O rate possible. This is called an uncontrolled max workload.
#'rdpc=30': Read percentage. Default 100.
#'seekpct=100': Percentage of random seeks. Default seekpct=100 or seekpct=random.

USER1@VM1:~/download$ sudo ./vdbench -f ./vdbench_param/param.txt -o param_report

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50407 Tue June 05  9:49:29 MDT 2018
For documentation, see 'vdbench.pdf'.

23:29:31.163 input argument scanned: '-f./vdbench_param/param.txt'
23:29:31.164 input argument scanned: '-oparam_report'
23:29:31.221 Starting slave: /home/USER1/download/vdbench SlaveJvm -m localhost -n localhost-10-210419-23.29.31.128 -l localhost-0 -p 5570   
23:29:31.456 All slaves are now connected
23:29:33.001 Starting RD=rd1; I/O rate: Uncontrolled MAX; elapsed=180; For loops: threads=16

Apr 19, 2021    interval        i/o   MB/sec   bytes   read     resp     read    write     read    write     resp  queue  cpu%  cpu%
                               rate  1024**2     i/o    pct     time     resp     resp      max      max   stddev  depth sys+u   sys
23:29:34.038           1     8504.0    33.22    4096   0.00    1.360    0.000    1.360     0.00    13.53    1.644   11.6   7.4   2.1
23:29:35.006           2    11040.0    43.13    4096   0.00    1.416    0.000    1.416     0.00    20.22    2.218   15.8   6.1   3.1 
(...생략...)
23:32:32.002         179    10662.0    41.65    4096   0.00    1.496    0.000    1.496     0.00    19.94    1.826   16.0   3.4   2.7
23:32:33.005         180    13789.0    53.86    4096   0.00    1.153    0.000    1.153     0.00    17.99    1.452   16.0   5.4   2.9
23:32:33.010   avg_2-180    12143.3    47.43    4096   0.00    1.314    0.000    1.314     0.00    69.39    1.662   16.0   4.2   2.9
23:32:33.680 Vdbench execution completed successfully. Output directory: /home/USER1/download/param_report 

USER1@VM1:~/download/vdbench$ grep avg param_report/totals.html 
Apr 19, 2021    interval        i/o   MB/sec   bytes   read     resp     read    write     read    write     resp  queue  cpu%  cpu%
                               rate  1024**2     i/o    pct     time     resp     resp      max      max   stddev  depth sys+u   sys
23:32:33.010   avg_2-180    12143.3    47.43    4096   0.00    1.314    0.000    1.314     0.00    69.39    1.662   16.0   4.2   2.9
# max 설정의 평균 IOPS 12143, 전송속도 47.43M/s, read 응답시간 1.314초, write 응답시간 1.314초, cpu 사용률 4.2%
# cpu core 수보다 많은 thread 설정으로 IOPS, 전송속도는 소폭 늘었지만 응답시간이 1초 이상으로 늘어남

3-2. Raw Device I/O 테스트와 결과

;SD 매개변수로 file system file 을 사용하는 경우
;Vdbench Users Guide를 참고하면 Name of raw disk, file system file 모두 사용 가능

USER1@VM1:~/files$ dd if=/dev/zero of=1gFile count=1000000 bs=1024    
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 2.3842 s, 429 MB/s

(...생략...)
USER1@VM1:~/files$ ls -alhs |sort
 11G -rw-rw-r-- 1 USER1 USER1  10G Apr 19 21:38 10gFile
 20G -rw-rw-r-- 1 USER1 USER1  20G Apr 19 21:06 20gFile
 29G -rw-rw-r-- 1 USER1 USER1  29G Apr 19 21:07 30gFile
977M -rw-rw-r-- 1 USER1 USER1 977M Apr 19 21:40 1gFile
# 매개변수 변경으로 테스트 결과를 비교하기 위해 1GB, 10GB, 20GB, 30GB dummy 생성  

USER1@VM1:~/download/vdbench$ cat vdbench_param/param.txt
sd=sd1,lun=/home/USER1/files/10gFile,size=10g
wd=wd1,sd=sd1,xfersize=4K,rdpct=0,seekpct=100
rd=rd1,wd=wd1,iorate=max,elapsed=180,interval=1,threads=6

# SD (Storage Definition) parameters
#'lun=/home/USER1/files/10gFile': Name of raw disk or file system file.
#     *Solaris file system filename. No control over physical I/O guaranteed since the file system may use system cache.
#'size=10g': Size of the raw disk or file to use for workload. Optional unless you want Vdbench to create a disk file for you.
#'iorate=max': Run the maximum I/O rate possible. This is called an uncontrolled max workload.
#'rdpc=30': Read percentage. Default 100.
#'seekpct=100': Percentage of random seeks. Default seekpct=100 or seekpct=random.

;매개변수를 변경하며 실행 한 결과
;매개변수를 다르게 실행할 때 마다 전혀 다른 결과도 볼 수 있다.
(지금은 이해가 부족하여 언젠가 다시.. 분석을 위해 남겨 놓음)

USER1@VM1:~/download/vdbench$ sudo ./vdbench -f ./vdbench_param/param.txt -o param_report
(...생략...)
Apr 19, 2021    interval        i/o   MB/sec   bytes   read     resp     read    write     read    write     resp  queue  cpu%  cpu%
                               rate  1024**2     i/o    pct     time     resp     resp      max      max   stddev  depth sys+u   sys

# sd=sd1,lun=/home/USER1/files/10gFile,size=9g  실행 결과
22:59:35.016   avg_2-180    67857.4   265.07    4096   0.00    0.086    0.000    0.086     0.00   141.18    1.421    5.8  25.7  22.7

# sd=sd1,lun=/home/USER1/files/10gFile,size=10g 실행 결과
23:04:43.009   avg_2-180    64894.9   253.50    4096   0.00    0.090    0.000    0.090     0.00   157.74    1.409    5.9  24.1  21.4

# sd=sd1,lun=/home/USER1/files/10gFile          실행 결과 (size=10g 매개변수 제거)
21:38:41.008   avg_2-180    61410.1   239.88    4096   0.00    0.095    0.000    0.095     0.00   207.60    1.697    5.9  17.0  14.7

# sd=sd1,lun=/home/USER1/files/10gFile,size=1g  실행 결과
21:22:44.011   avg_2-180   274043.2  1070.48    4096   0.00    0.020    0.000    0.020     0.00   168.18    0.513    5.5  48.4  38.2

# sd=sd1,lun=/home/USER1/files/30gFile,size=1m  실행 결과
22:49:17.031   avg_2-180   688208.1  2688.31    4096   0.00    0.007    0.000    0.007     0.00    93.11    0.084    4.7  87.5  59.0

# sd=sd1,lun=/home/USER1/files/20gFile,size=1m  실행 결과
22:45:33.013   avg_2-180   690853.1  2698.65    4096   0.00    0.007    0.000    0.007     0.00    52.51    0.074    4.7  87.6  58.6

# sd=sd1,lun=/home/USER1/files/10gFile,size=1m  실행 결과
22:02:00.058   avg_2-180   417458.5  1630.70    4096   0.00    0.011    0.000    0.011     0.00  2851.31    1.226    4.7  70.3  49.3

# sd=sd1,lun=/home/USER1/files/1gFile,size=10g  실행 결과
# 추가로 아래 파일 사이즈 경고 메시지가 출력됨   
21:47:37.004   avg_2-180    66388.2   259.33    4096   0.00    0.088    0.000    0.088     0.00   203.61    1.579    5.9  19.6  17.0

21:44:28.117 Warning: size requested for sd=sd1,lun=/home/USER1/files/1gFile: 10737418240; size available: 1024000000. Insufficient size.
21:44:28.117 If this is a file system file vdbench will try to expand it. 
21:44:28.117 
21:44:28.119 Vdbench will attempt to expand a disk file if the requested file size is a multiple of 1mb

4. File-System 테스트와 결과

  1. 각각의 mount 포인트에 디렉토리 depth: 1, 파일 사이즈 1GB 5개, 전송사이즈 128k, 180초간 ramdon write 100% I/O 부하
USER1@VM1:~/download/vdbench$ vi vdbench_param/param.txt

fsd=fsd1,anchor=/home/USER1/vdbench_fstest,depth=1,width=1,files=5,size=1G
fwd=fwd1,fsd=fsd1,rdpct=0,xfersize=128k,fileselect=random,fileio=random,threads=6
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=180,interval=1

# FSD (File System Definition) parameters
#'depth=1' : How many levels of directories to create under the anchor.
#'width=1' : How many directories to create in each new directory.
#'files=16' : How many files to create in the lowest level of directories.
#'size=1g' : Specifies the size(s) of the files that will be created.

# FWD (Filesystem Workload Definition) parameters
#'fileio=random' : How file I/O will be done: random or sequential
#'fileselect=random' : How to select file names or directory names for processing. e.g. fileselect=random/seq
#'threads=16' : How many concurrent threads to run for this workload.
#'operation=read' : Specifies a single file system operation that must be done for this workload.
#'rdpct=30' : For operation=read and operation=write only. This allows a mix and read and writes against a single file.

# RD (Run Definition) parameters
#'fwdrate=max' : How many file system operations per second
#'format=yes' : During this run, if needed, create the complete file structure. e.g. format=yes/no/only/ restart/clean/once/ directories

USER1@VM1:~/download/vdbench$ sudo ./vdbench -f vdbench_param/param.txt -m 4 -o param_report

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50407 Tue June 05  9:49:29 MDT 2018
For documentation, see 'vdbench.pdf'.

13:07:18.929 Created output directory '/home/USER1/download/vdbench/param_report'
13:07:18.950 input argument scanned: '-fvdbench_param/param.txt'
13:07:18.950 input argument scanned: '-m4'
13:07:18.951 input argument scanned: '-oparam_report'
13:07:18.989 Anchor size: anchor=/home/USER1/vdbench_fstest: dirs:            1; files:            5; bytes:     5.000g (5,368,709,120)
13:07:19.029 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-10-210422-13.07.18.910 -l localhost-0 -p 5570   
13:07:19.050 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-11-210422-13.07.18.910 -l localhost-1 -p 5570   
13:07:19.070 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-12-210422-13.07.18.910 -l localhost-2 -p 5570   
13:07:19.090 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-13-210422-13.07.18.910 -l localhost-3 -p 5570   
13:07:19.451 All slaves are now connected
13:07:20.002 Starting RD=format_for_rd1
13:07:20.280 localhost-0: anchor=/home/USER1/vdbench_fstest mkdir complete.

Apr 22, 2021 ..Interval.. .ReqstdOps... ...cpu%...  read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete...
                            rate   resp total  sys   pct   rate   resp   rate   resp  read write  total    size  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp
13:07:21.152            1  11774  0.321  31.3 22.3   0.0    0.0  0.000  11774  0.321  0.00  1471 1471.7  131072   1.0  0.504   0.0  0.000   0.0  0.000   5.0  1.373   0.0  0.000   0.0  0.000
13:07:22.024            2  11856  0.393  47.3 39.8   0.0    0.0  0.000  11856  0.393  0.00  1482 1482.0  131072   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000
13:07:23.012            3  13765  0.367  32.8 28.0   0.0    0.0  0.000  13765  0.367  0.00  1720 1720.6  131072   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000
13:07:23.269 localhost-0: anchor=/home/USER1/vdbench_fstest create complete.
13:07:24.007            4 3563.0  0.311  12.0 8.35   0.0    0.0  0.000 3563.0  0.311  0.00 445.3 445.38  131072   0.0  0.000   0.0  0.000   5.0 2937.1   0.0  0.000   5.0  0.041   0.0  0.000
13:07:24.013      avg_2-4 9728.0  0.370  30.0 24.7   0.0    0.0  0.000 9728.0  0.370  0.00  1216 1216.0  131072   0.0  0.000   0.0  0.000   1.7 2937.1   0.0  0.000   1.7  0.041   0.0  0.000
13:07:24.013      std_2-4 5423.7  2.482                                5423.7  2.482                                                        2.9 65.916                2.9  0.036             
13:07:24.014      max_2-4  13765 48.064                                 13765 48.064                                   0.504                5.0 2987.5        1.539   5.0  0.105             
13:07:24.134 
13:07:24.134 Miscellaneous statistics:
13:07:24.134 (These statistics do not include activity between the last reported interval and shutdown.)
13:07:24.134 FILE_CREATES        Files created:                                    5          1/sec
13:07:24.134 DIRECTORY_CREATES   Directories created:                              1          0/sec
13:07:24.134 WRITE_OPENS         Files opened for write activity:                  5          1/sec
13:07:24.134 DIR_EXISTS          Directory may not exist (yet):                    3          0/sec
13:07:24.134 FILE_CLOSES         Close requests:                                   5          1/sec
13:07:24.134 
13:07:25.001 Starting RD=rd1; elapsed=180; fwdrate=max. For loops: None

Apr 22, 2021 ..Interval.. .ReqstdOps... ...cpu%...  read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete...
                            rate   resp total  sys   pct   rate   resp   rate   resp  read write  total    size  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp
13:07:26.012            1  15171  0.252  16.2 10.4   0.0    0.0  0.000  15171  0.252  0.00  1896 1896.3  131072   0.0  0.000   0.0  0.000   0.0  0.000   5.0  0.148   0.0  0.000   0.0  0.000
13:07:27.005            2  15255  0.323  28.3 21.0   0.0    0.0  0.000  15255  0.323  0.00  1906 1906.8  131072   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000   0.0  0.000
(...생략...)
13:10:24.004          179  10724  0.459  17.1 14.6   0.0    0.0  0.000  10724  0.459  0.00  1340 1340.5  131072   0.0  0.000   0.0  0.000   0.0  0.000   1.0  0.120   1.0  0.016   0.0  0.000
13:10:25.004          180  11040  0.450  16.6 14.1   0.0    0.0  0.000  11040  0.450  0.00  1380 1380.0  131072   0.0  0.000   0.0  0.000   0.0  0.000   3.0  0.095   3.0  0.021   0.0  0.000
13:10:25.010    avg_2-180  11261  0.437  19.3 15.7   0.0    0.0  0.000  11261  0.437  0.00  1407 1407.7  131072   0.0  0.000   0.0  0.000   0.0  0.000   1.4  0.158   1.4  0.020   0.0  0.000
13:10:25.010    std_2-180                                              1356.7  3.593                                                                     1.3  0.110   1.3  0.032             
13:10:25.010    max_2-180                                               15255 963.18                                                                     5.0  0.988   5.0  0.509             
13:10:25.228 
13:10:25.229 Miscellaneous statistics:
13:10:25.229 (These statistics do not include activity between the last reported interval and shutdown.)
13:10:25.229 WRITE_OPENS         Files opened for write activity:                251          1/sec
13:10:25.229 FILE_BUSY           File busy:                                  152,272        845/sec
13:10:25.229 FILE_CLOSES         Close requests:                                 246          1/sec
13:10:25.229 
13:10:25.645 Vdbench execution completed successfully. Output directory: /home/USER1/download/vdbench/param_report 

USER1@VM1:~/download$ grep avg param_report/summary.html    
13:07:24.012      avg_2-4 9728.0  0.370  30.0 24.7   0.0    0.0  0.000 9728.0  0.370  0.00  1216 1216.0  131072   0.0  0.000   0.0  0.000   1.7 2937.1   0.0  0.000   1.7  0.041   0.0  0.000

13:10:25.010    avg_2-180  11261  0.437  19.3 15.7   0.0    0.0  0.000  11261  0.437  0.00  1407 1407.7  131072   0.0  0.000   0.0  0.000   0.0  0.000   1.4  0.158   1.4  0.020   0.0  0.000
# 평균 CPU 19.3%, Write 100%, Total 1407.7 MB/s = Read 0 MB/s + Write 1407 MB/s

  1. 각각의 mount 포인트에 디렉토리 depth: 1, 파일 사이즈 1MB 10,000개, 전송사이즈 4k, 180초간 random read 70%, ramdon write 30% I/O 부하
USER1@VM1:~/download/vdbench$ vi vdbench_param/param.txt

fsd=fsd1,anchor=/home/USER1/vdbench_fstest,depth=1,width=1,files=10000,size=1M
fwd=fwd1,fsd=fsd1,rdpct=70,xfersize=4k,fileselect=random,fileio=random,threads=6
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=180,interval=1

USER1@VM1:~/download/vdbench$ sudo ./vdbench -f vdbench_param/param.txt -m 4 -o param_report

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50407 Tue June 05  9:49:29 MDT 2018
For documentation, see 'vdbench.pdf'.

13:27:27.519 Created output directory '/home/USER1/download/vdbench/param_report'
13:27:27.538 input argument scanned: '-fvdbench_param/param.txt'
13:27:27.538 input argument scanned: '-m4'
13:27:27.539 input argument scanned: '-oparam_report'
13:27:27.575 Anchor size: anchor=/home/USER1/vdbench_fstest: dirs:            1; files:       10,000; bytes:     9.766g (10,485,760,000)
13:27:27.613 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-10-210422-13.27.27.501 -l localhost-0 -p 5570   
13:27:27.633 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-11-210422-13.27.27.501 -l localhost-1 -p 5570   
13:27:27.654 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-12-210422-13.27.27.501 -l localhost-2 -p 5570   
13:27:27.676 Starting slave: /home/USER1/download/vdbench/vdbench SlaveJvm -m localhost -n localhost-13-210422-13.27.27.501 -l localhost-3 -p 5570   
13:27:28.005 All slaves are now connected
13:27:29.001 Starting RD=format_for_rd1
13:27:29.325 localhost-0: anchor=/home/USER1/vdbench_fstest mkdir complete.

Apr 22, 2021 ..Interval.. .ReqstdOps... ...cpu%...  read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete...
                            rate   resp total  sys   pct   rate   resp   rate   resp  read write  total    size  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp  rate   resp
13:27:30.066            1 7229.0  0.675  17.8 7.16   0.0    0.0  0.000 7229.0  0.675  0.00 903.6 903.62  131072   1.0  0.479   0.0  0.000 899.0  6.120 907.0  0.230 899.0  0.009   0.0  0.000
13:27:31.017            2 5951.0  1.266  13.6 7.27   0.0    0.0  0.000 5951.0  1.266  0.00 743.8 743.88  131072   0.0  0.000   0.0  0.000 745.0 10.196 745.0  0.038 745.0  0.010   0.0  0.000
(...생략...)
13:30:41.008          179  94612  0.061  27.7 22.5  70.0  66247  0.084  28365  0.007 258.7 110.8 369.58    4096   0.0  0.000   0.0  0.000   0.0  0.000 369.0  0.025 369.0  0.005   0.0  0.000
13:30:42.003          180  87924  0.066  29.3 23.1  69.8  61345  0.091  26579  0.007 239.6 103.8 343.45    4096   0.0  0.000   0.0  0.000   0.0  0.000 343.0  0.025 343.0  0.006   0.0  0.000
13:30:42.006    avg_2-180  93218  0.062  25.3 20.7  70.0  65253  0.086  27965  0.007 254.9 109.2 364.14    4095   0.0  0.000   0.0  0.000   0.0  0.000 364.1  0.028 364.1  0.006   0.0  0.000
13:30:42.006    std_2-180                                 11103  0.255 4750.7  0.044                                                                    61.9  0.201  61.9  0.014             
13:30:42.006    max_2-180                                 89102 39.057  38223 18.777                                                                   497.0 18.745 497.0  3.129             
13:30:42.229 
13:30:42.229 Miscellaneous statistics:
13:30:42.229 (These statistics do not include activity between the last reported interval and shutdown.)
13:30:42.230 WRITE_OPENS         Files opened for write activity:             65,550        364/sec
13:30:42.230 FILE_BUSY           File busy:                                       28          0/sec
13:30:42.230 FILE_CLOSES         Close requests:                              65,544        364/sec
13:30:42.230 
13:30:43.300 Vdbench execution completed successfully. Output directory: /home/USER1/download/vdbench/param_report 

USER1@VM1:~/download/vdbench$ grep avg param_report/summary.html   
13:27:41.009     avg_2-12 6615.5  1.172  15.4 9.90   0.0    0.0  0.000 6615.5  1.172  0.00 826.9 826.94  131072   0.0  0.000   0.0  0.000 827.4  9.493 826.6  0.090 827.4  0.006   0.0  0.000

13:30:42.006    avg_2-180  93218  0.062  25.3 20.7  70.0  65253  0.086  27965  0.007 254.9 109.2 364.14    4095   0.0  0.000   0.0  0.000   0.0  0.000 364.1  0.028 364.1  0.006   0.0  0.000
# 평균 CPU 25.3%, Read 70%, Total 364.14 MB/s = Read 254.9 MB/s + Write 109.2 MB/s

5. File-System 테스트 진행 중 오류

  1. 메모리 2GB에서 4GB 할당하니 조치됨
USER1@VM1:~/download/vdbench$ sudo ./vdbench -f ./vdbench_param/param.txt -o param_report


Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50407 Tue June 05  9:49:29 MDT 2018
For documentation, see 'vdbench.pdf'.

16:50:37.585 input argument scanned: '-f./vdbench_param/param.txt'
16:50:37.586 input argument scanned: '-oparam_report'
16:50:37.621 Anchor size: anchor=/home/USER1/vdbench_fstest: dirs:            1; files:           16; bytes:    16.000g (17,179,869,184)
java.lang.ClassFormatError: Incompatible magic value 1379526822 in class file java/nio/ByteBufferAsLongBufferB
        at java.base/java.nio.HeapByteBuffer.asLongBuffer(HeapByteBuffer.java:486)
        at Utils.Bin.<init>(Bin.java:168)
        at Utils.Bin.<init>(Bin.java:185)
        at Vdb.FwdStats.defineNamedData(FwdStats.java:1063)
        at Vdb.Vdbmain.open_print_files(Vdbmain.java:183)
        at Vdb.Vdbmain.masterRun(Vdbmain.java:792)
        at Vdb.Vdbmain.main(Vdbmain.java:628)
16:50:37.629 common.failure(): System.exit(-99)

6. 진행하며 검토 및 알게된 것

  • 스토리지의 최대 성능을 측정하는지, 스토리지에 연결된 서버에서 어느 수준의 성능이 나오는지 등 시나리오 따라 방향이 달라진다.
  • 가상 머신의 경우 thin provisioning 특성을 감안해야 하는데 재구성이 번거로워 반복해서 실행했다.
  • 부하를 일으키는 테스트 서버의 성능에 따라 multi thread 외 jvm 실행 수 등 매개변수 설정도 적정한지 테스트 해봐야한다.
  • 테스트를 진행하는 스토리지 볼륨에는 데이터 손실이 있을 수 있으므로 스냅샷을 미리 생성하거나 분리된 볼륨에서 진행해야 한다.
  • 스토리지 엔지니어마다 다르지만 현업 지인의 경험으로는 vdbench, iometer 가 스토리지 자체 측정 결과와 비슷하게 나와 이를 주로 사용한다고 한다.
  • 경험 많은 스토리지 엔지니어가 아닌 한 나처럼 테스트에 의미있는 다양한 매개변수의 이해와 구성 시나리오, 난해한 가이드 문서에서 적절한 매개변수를 찾기란 어려워 PC에서 CrystalDiskMark 처럼 손쉽게 실행 후 결과를 얻기란 쉽지 않다.

참고 글