[DB기술노트81회] Oracle VDBENCH
- 데이터 Tech
- 2019. 4. 25. 10:01
1. VDBENCH
본 문서는 vdbench에 대한 설명서입니다. Vdbench(Vandenbergh benchmarking)는 storage의 테스트 및 벤치마크를 위한 디스크 I/O 부하생성기로 opensource tool 중 하나 입니다. vdbench는 디렉토리와 파일 구성, 멀티 클라이언트 테스트 등을 간편하게 수행할 수 있으며 스토리지의 성능과 데이터 정합성을 검증을 할 수 있는 ORACLE 에서 만든 제품입니다.
1.1. Objective
Java로 개발 되었으며, 여러 OS에서 지원 가능합니다. (window, solaris, aix, hp-ux, vmware, mac OS) 아래와 같이 다양한 부하를 생성 할 수 있습니다.
- I/O rate
- LUN or File size
- 전송 크기
- Thread count
- Volume count
- Read/Write 비율
- Read/Write Cache Hit %
- Random sequential workloads
1.2. Features
HTML을 사용하여 Web Brower에서 리포트 형태로 출력이 가능하며, 아래의 스토리지 성능을 측정합니다.
- IOPS
- Response Time: MS
- Data Transfer Rate : MB/s
- CPU Utilization : %
1.3. 부하종류
§ File System Definition(FSD)
생성될 Directory 및 File 구조를 기술
§ File File System Workload Definition(FWD)
사용할 FSD 및 기타 부하 파라미터를 지정
§ Run Definition(RD)
실행될 파일 시스템 부하를 제어하는 Parameter set
1.4. 용어 설명
Vdbench를 사용할 때 자주 사용하는 용어입니다.
- Execution 전반적인 vdbench 실행 및 파일 이름, 출력 디렉토리 이름 등을 설정 합니다.
- Raw I/O workload 스토리지 설정 및 부하 종류 등을 정의 General, Host Definition(HD), Replay Group(RG), Storage Definition(SD), Run Definition(RD)를 포함합니다. 반드시 위에 나열된 순서대로 기술되어야 합니다. Run은 RD에 의해 요청된 부하를 한번 실행하는 것 입니다.
- File System Workload 파일시스템 설정 및 부하 종류 등을 정의 General, Host Definition(HD), File System Definition(FSD), File system Workload Definition(FWD), Run Defiinition(RD)를 포함합니다. Run은 RD에 의해 요청된 부하를 한번 실행하는 것으로, 한 RD 내에 다수의 Run이 요청될 수 있습니다.
- Relay 이 기능은 SWAT(Sun StorageTekTM Workload Analysis Tool) 에서 추적하여 처리한 I/O 작업 부하를 재실행 합니다.
- Master / Slave vdbench는 2개 또는 그 이상의 Java Virtual machine(JVM)으로 실행되는데, master는 모든 파라미터 파싱을 담당합니다. 즉, 어떤 부하를 실행할지 결정하며, 모든 종류의 보고 합니다. 실제 부하는 1개 또는 그 이상의 slave로 실행되며, slave는 master host에서 실행되거나, 파라미터 파일 내 정의된 원격 호스트에서 실행될 수 있습니다.
- Data Validation 스토리지의 데이터 오류를 검출 합니다.
- Journaling Data Validation과 Journaling을 함께 사용 하면 vdbench 실행을 통해 데이터 오류를 검출할 수 있습니 다. 즉, 데이터를 식별 하는데 사용 합니다.
- LBA(lba) Logical Byte Address. 디스크 섹터 사이즈 |
2. Installation
zip 파일로 되어 있으며, OS별로 나뉘어져 있는 것이 아니고 zip 파일 안에 OS별 Library가 포함되어 있습니다.
Vdbench는 CLI 기반이며, 해당 서버에 설치하거나 client에서 설치 할 경우 /etc/hosts에 정의되야 하며, target 서버에는 동일한 위치에 vdbench가 설치 되어야 합니다. 또한, client를 사용할 경우ssh를 사용하기 때문에 ssh-copy가 필요 할 수 있습니다. (unzip만 하면 설치 완료)
최소 JRE 1.7 이상 설치 되어야 합니다. 아래의 링크를 통하여 download 합니다.
다운로드 : http://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html
2.1. 사용법
Vdbench를 설치한 directory에 있는 “vdbench” command를 사용하여 실행 합니다.
파라미터 파일/옵션을 사용하거나 fuction을 사용하여 실행 할 수 있습니다.
UNIX/LINUX : ./vdbench –f <파라미터파일> -o <결과디렉토리> WINDOW : vdbench.bat –f
## Quick Simple test ./vdbench –t ( raw I/O ) ./vdbench –tf ( File System workload ) |
2.1.1. Command Option
./vdbench [- fxxx yyy zzz] [-o xxx] [-c x] [-s] [-k] [-e nn] [-I nn] [-w nn ] [-m nn] [-v] [-vr] [-vw] [-vt] [-j] [-jr] [-jri] [-jm] [-jn] [-jro] [-p nnn] [-t] [-l nnn] [ xxx=yyy,….]
Options |
Description |
-f parameterfile |
Parameter file의 내용을 읽음 |
-o directory |
Output directory 설정, default는 ‘vdbench/out’ directory에 생성 |
-t |
5초동안 sample workload 실행 (가장 작은 disk file) |
-tf |
5초동안 sample File system workload 실행 |
-e nn |
RD파라미터, 실행에 대한 경과 시간(초) 설정 |
-I nn |
RD파라미터, interval 설정 |
-w nn |
RD파라미터, warmup 설정 |
-m nn |
Multi JVM 실행 |
-v |
데이터 유효성 검사 |
-vr -vw |
데이터 유효성 검사, write 직 후에 read 유효성 검사 수행 데이터 유효성 검사, write 전에 read 하지 않음 |
-vt |
데이터 유효성 검사, 마지막 메모리 read/write의 timestamp 저장 |
-j |
Journaling을 사용하여 데이터 유효성 검사 |
-jr |
기존 journal recover, 데이터 검증 및 부하 실행 |
-jro |
기존 journal recover, 데이터 유효성 검사하지만 workload 실행하지 않음 |
-jri |
기존 journal recover, pending write ignore |
-jm |
Journaling 실행, journal map만 write |
-jn |
Journaling 실행, 비동기 write 사용 |
-s |
Simulate 실행, parameter file을 검색하여 실행 이름을 표시 |
-k |
Kstat report, Solaris에서만 가능 |
-c |
Clean FSD file system |
-co |
Force format=only |
-cy |
Force format=yes |
-cn |
Force format=no |
-p port_number |
Java socket port number 정의 (default 5570) |
-l nnn |
Loop 설정 |
xxx=yyy ….. |
Variable Substitution, 변수 코딩 가능 |
2.1.2. Function Option
./vdbench [compare] [csim] [dsim] [dvpost] [edit] [jstack] [parse] [print] [rsh] [sds] [showlba]
Function |
Description |
compare |
Workload compare 실행 |
dsim |
Debup simulator |
dvpost |
데이터 유효성 검사하여 손상된 데이터 표시 (50405 버전에는 존재하지 않음) |
edit |
기본 전체화면 편집기 |
jstack |
JDK를 이요하여 stack trace 생성 |
parse |
사용자가 원하는 열과 행을 선택하고 구분 된 탭에 씁니다. |
|
디스크/디스크파일의 모든 블록 출력 |
rsh |
RSH daemon을 실행하여 테스트 |
sds |
SD parameter generation tool (Solaris, Linux, Window만 가능) |
showlba |
Vdbench 슬레이브가 showlba 유틸리티로 읽고 표시 할 수있는 추적 파일을 생성 |
2.2. Parameter File
Parameter file안의 내용에서 지정된 순서대로 읽혀집니다. 파라미터 파일을 꼭 사용 할 필요는 없습니다.
Default 파라미터 파일은 /tmp/parmfile을 사용합니다. 만약 다른 파라미터 파일을 사용하려면 vdbench –f 옵션을 사용해야 합니다.
- Defined : General, HD, RG, SD, WD, RD
- File system testing : General, HD, FSD, FWD, RD
2.2.1. 변수 치환
변수 파일에 $lun과 같은 변수를 코딩 할 수 있으며, command-line에서 재정의 할 수 있습니다.
또한, 파라미터 파일안에 쉘 스크립트가 내장 된 경우 ‘!’를 사용하여 지정 할 수 있습니다.
2.2.2. General Parameter
일반적인 방법으로, 사용할 경우 파라미터 파일 안에서 첫번재로 지정되어야 합니다.
General Parameters |
Description |
abort_failed_skew=nn |
요청 된 작업 부하가 해제 된 경우 중단 % 지정 |
compratio=nn concatenatesds=yes create_anchores=yes data_errors=nn data_errors=cmd |
write에 사용되는 데이터 패턴의 압축 비율 지정
파일 I/O가 발생하는 위치에 대한 상위 디렉토리 생성 Read/write/데이터 검증 에러가 발생 되면 종료 (default 50) Read/write/데이터 검증 에러 가 발생되면 cmd/script 실행 |
2.2.3. HD (Host Definition)
다중 호스트 환경에서 실행하거나 client에서 target으로 붙을 경우 사용 합니다.
아래는 지원되는 파라미터이며 일반적으로 사용하는 파라미터 예제도 있습니다.
HD Parameters |
Description |
hd=default hd=localhost hd=host_label system=host_name vdbench=directory_path jvms=nnn shell=rsh|ssh|vdbench |
모든 host설정에 적용 Current host에만 적용 Host label 지정 Host ip address / network name 지정, /etc/host에 지정 되어 있어야 합니다. Remote로 실행해야 할 경우 target Vdbench 설치 경로를 지정해야 합니다. Multi jvm을 사용할 경우 Slave 개수 지정 remote에서 붙을 경우 shell 방식 지정 |
User=username clients=nn mount=’mount xxx..’ |
rsh/ssh를 사용할 경우 user 지정 host 객체를 지정하여 client의 실행을 simulation 필요한 mount directory가 작성 된 후 대상 호스트에서 실행 |
## 예시 host=default, user=root, shell=ssh, vdbench=/root/vdbench50403 host=client1, system=client1 'vdbench' 뒤에는 vdbench가 위치하는 디렉토리를 입력하면 됩니다. host=client1 은 이 스크립트에서 host 객체를 client1로 지정한다는 얘기고, 'system=client1'은 이 호스트는 /etc/hosts에 'client1'로 지정되어 있단 뜻 입니다. |
2.2.4. RG (Realy Group)
SWAT에서 가져온 device의 그룹으로, 하나 이상의 SD에서 I/O workload에서 재실행 되어야 합니다.
RG Parameters |
Description |
rg=name |
RG 이름 지정 |
Devices=(xxx,yyy…) |
SWAT의 flatfile.bin.gz에서 재실행된 Device 번호 지정 |
2.2.5. SD (Storage Definition)
부하 테스트에 사용할 storage를 정의합니다. SD이름은 고유해야 합니다.
요청된 workload에 사용된 physical/logical 볼륨 매니저, File-System 을 식별 할 때 사용합니다.
SD Parameters |
Description |
rg=name |
RG 이름 지정 |
Devices=(xxx,yyy…) |
SWAT의 flatfile.bin.gz에서 재실행된 Device 번호 지정 |
2.2.6. FSD (File Storage Definition)
생성된 파일, directory set을 정의합니다. 즉, 생성될 directory/file 구조를 정의 합니다.
FSD Parameters |
Description |
fsd=name |
FSD 이름 지정 |
fsd=default |
사용된 모든 파라미터는 fsd default로 사용 |
anchor=/dir |
파일 I/O가 발생하는 디렉토리 설정 |
count |
FSD Parameter 시퀀스 생성 |
depth |
Anchor 아래의 디렉토리 구성 방법(생성 할 디렉토리 수준레벨) |
distribution=bottom/all |
Bottom은 가장 낮은 디렉토리에만 파일생성, all은 모든 디렉토리에 파일 생성 |
files |
가장 낮은 수준의 디렉토리에 생성 할 파일 수 |
openflags |
어떤 파라미터를 전달할 지에 대한 제어를 허용 |
shared=yes|no |
Default 값은no, slave, host를 공유 |
sizes |
파일 하나당 사이즈 정의 |
totalsize |
파일 사이즈 limit 설정 |
width |
Anchor 아래의 디렉토리 구성 방법 |
workingsetsize(wss) |
파일 구조에 정의 된 총 파일 수 중 하위 집합 만 사용 |
2.2.7. WD (Workload Definition)
입력 된 Storage Definition(SD)를 사용하여 실행해야 하는 workload의 종류를 설명합니다.
스크립트에서 사용하는 작업 부하 종류 선택하며 WD이름은 고유해야 합니다.
WD Parameters |
Description |
wd=default |
입력된 모든 WD의 기본값을 설정 |
wd=name |
WD 이름 설정 |
sd=xx |
사용할 SD 지정 |
host=host_label |
Host 지정 (default localhost) |
iorate=nn |
i/o rate 를 고정으로 지정 |
openflag |
어떤 파라미터를 전달할 지에 대한 제어를 허용 |
range |
SD 내에 정의된 range limit 지정 |
rdpct |
Read %, default 100% |
rhpct |
Read Hit %(캐시에 저장하기 위해 첫번째 바이트는 access됨), default 0 |
seekpct |
Seek %, lba를 찾는 빈도 지정 (default 100, random) |
skew |
Skew %, |
streams |
독립적인 sequential stream 생성, sequential data를 read/write 할때 수행되는 기본처리를 overwrite 합니다. |
stride |
Sequential I/O Skip |
threads |
SD와 연결 중에만 사용 가능, thread 수 정의 |
whpct |
Wirte hit %, Default 0 |
xfersize |
Data Transfer Size, Default 4k |
2.2.8. FWD (File-system Workload Definition)
File-System의 테스트 Workload를 정의 합니다. 부하 파라미터를 지정하게 됩니다.
사용할 FSD 및 기타 부하를 어떤식으로 I/O를 진행 할지에 대한 결정을 합니다.
WD Parameters |
Description |
fwd=default |
입력된 모든 FWD의 기본값을 설정 |
fwd=name |
FWD 이름 설정 |
fsd=xx |
사용할 FSD 이름 지정 |
openflag |
어떤 파라미터를 전달할 지에 대한 제어를 허용 |
fileio |
File I/O 방식 설정, sequential, random, random.shared, sequential.delete
|
Fileselect rdpct |
처리를 위해 파일 이름이나 디렉토리 이름 선택 지정 Read %, default 100% |
host=host_label |
workload를 실행할 host 지정 |
operation |
작업 부하에 대해 수행해야 하는 단일 파일시스템 작업 지정 Operation=read, operation=write, 단일 파일에 대해 혼합 및 읽기/쓰기 가능 |
skew |
Skew %, FWD에 사용하는 total % |
stopafter |
Random I/O의 경우 지정하게 되면 지정한 수만큼 read/write 후 stop, close file |
threads |
작업 부하에 대해 실행할 동시 스레드 수 |
xfersize |
Data Transfer Size, Default 4k |
2.2.9. RD (Run Definition)
실행될 I/O 속도 및 workload가 실행되는 시간을 정의 합니다.
Raw I/O testing 으로 사용합니다. 설정한 WD(FWD)를 실행을 해주는 곳으로, 실행될 File-System부하를 제어하는 파라미터 입니다.
WD Parameters |
Description |
rd=default |
입력된 모든 RD의 기본값을 설정 |
rd=name |
RD 이름 설정 |
wd=xx |
wd 지정 |
sd=xx |
sd 지정 (optional) |
elapsed=nn |
Default 30초, I/O 시간 설정 (create는 파일 생성이 다완료 될 때 까지수행) |
interval=nn |
결과를 기록하는 단위, elapsed를 설정한 진행 상항을 보여줌 ex) elapsed=10 interval=2 , 2초 간격으로 5번의 I/O 진행 상황을 보여줌 |
format=yes|no |
RD를 실행하기전에 해당 디렉토리를 지우고 파일을 재생성 할지 설정 |
pause=nn |
다음 실행하기 전에 nn 만큼 sleep 설정 |
3. Report File
3.1. Report File
기본적으로 HTML파일로 제공되며, TEXT형식으로 나오며, Summary.html을 보면 다른 파일이 링크되어 있습니다.
Vdbench –o <디렉토리명> 옵션을 사용하면 특정디렉토리에 report가 만들어지며 옵션을 사용하지 않으면 vdbench/output에 생성됩니다.
3.2. Report Type
Parameter 및 부하를 줄 때, Option의 따라 생성되는 Report는 다릅니다.
Report Name |
Description |
summary.html |
각 실행 및 간격에 대한 작업 부하 결과를 포함하고 모든 html 파일에 대한 링크를 포함한 리포트 |
totals.html |
합계만 빠르게 확인 가능한 리포트 |
logfile.html parmfile.html parmscan.html kstat.html flatfile.html errlog.html swat_mon.txt messages.html |
디버깅에 필요한 logfile 리포트, 작업절차가 나와있음 -f 옵션을 사용하여 파라미터파일을 사용 할경우 파라미터정보가 나온 리포트 파라미터파일에 입력한 파라미터가 실행 절차가 나온 리포트 Solaris용 kstat 성능 데이터 리포트 ASCII 형태로 input에 사용되는 세부 통계가 들어있는 리포트 모든 I/O 오류, 데이터 유효성 검사가 기록되있는 리포트 swat 성능모니터링을 이용해 vdbench 성능 차트를 표시하는 리포트 Solaris/Linux only. /var/adm/message or /var/log/messages 마지막 500 line이 출력되는 리포트로 특정 I/O 오류나 종료 메시지가 시간으로 표시됨 |
histogram.html |
File System only. FWD 조작 응답시간 세부 사항을 막대그래프로 표시된 리포트 |
skew.html |
Skew 옵션을 사용 할 경우 나오는 report |
host.summary.html |
Summary.html과 동일하나 특정 host에 대한 리포트, host옵션을 사용하지 않을경우 동일함 |
host_n.stdout.html |
하나의 특정 slave에 대한 로그 파일 정보 |
host_x.instance.html |
각 kstat의 인스턴스 세부 성능 데이터 리포트 |
nfs3/4.html |
Solarais only. Nfsstat과 유사한 구간 별 NFS 통계 정보 리포트 |
3.3. Report Analysis
§ summary.html
예제) Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=1k
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 1 833.00 0.81 1024 0.00 0.007 0.000 0.007 0.035 0.003 0.0 12.5 0.4 2 991.00 0.97 1024 0.00 0.007 0.000 0.007 0.032 0.004 0.0 31.6 0.0 3 1001.00 0.98 1024 0.00 0.007 0.000 0.007 0.086 0.004 0.0 7.4 0.6 avg_2-3 996.00 0.97 1024 0.00 0.007 0.000 0.007 0.086 0.004 0.0 19.4 0.3
| |
Interval |
Interval 옵션을 사용할 경우 간격 순서 |
I/O rate |
평균 초당 I/O rate |
MB/sec |
전송된 데이터의 평균 MB 수 |
bytes I/O |
평균데이터 전송 크기 |
read pct |
평균 read % |
resp time |
읽기 / 쓰기 요청 지속 시간으로 측정 된 평균 응답 시간, I/O 시간은 밀리초 |
read resp |
read 평균 response time |
write resp |
write 평균 response time |
resp max |
구간의 최대 response time |
resp stddev |
response time 표준편차 |
queue depth |
평균 queue depth, kstat과 다를 수 있음 |
cpu% sys+usr |
CPU 사용량 = 100 – (sys사용량+usr사용량) |
cpu% sys |
CPU 사용량(sys사용량), 80% 이상인 경우 경고 표시 |
§ kstat.html
예제) Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=1k
interval KSTAT_i/o resp wait service MB/sec read busy avg_i/o avg_i/o bytes cpu% cpu% rate time time time 1024**2 pct pct waiting active per_io sys+usr sys 11:55:51.035 Starting RD=run1; I/O rate: 5000; Elapsed: 20 seconds. For loops: threads=8 11:56:00.023 1 4998.10 0.89 0.02 0.87 4.88 100.00 67.7 0.11 4.33 1024 5.9 2.4 11:56:04.087 2 5000.06 0.88 0.02 0.86 4.88 100.00 67.7 0.11 4.30 1024 2.2 0.5 11:56:08.024 3 5000.07 0.89 0.02 0.87 4.88 100.00 67.6 0.11 4.35 1024 1.4 0.2 11:56:12.013 4 4999.95 0.87 0.02 0.85 4.88 100.00 67.7 0.11 4.25 1024 1.4 0.4 11:56:16.013 5 4999.83 0.86 0.02 0.84 4.88 100.00 67.7 0.11 4.21 1024 1.3 0.4 11:56:16.101 avg_2-5 4999.98 0.88 0.02 0.86 4.88 100.00 67.7 0.11 4.28 1024 1.6 0.4
| |
Interval |
Interval 옵션을 사용할 경우 간격 순서 |
resp time |
읽기 / 쓰기 요청 지속 시간으로 측정 된 평균 응답 시간, I/O 시간은 밀리초 |
wait time |
host에서 대기한 각 I/O 평균 소요 시간 |
service time |
I/O가 처리되는 평균 시간 |
avg #I/O wating |
호스트에 대기중인 평균 I/O 수 |
avg #I/O active |
활성 I/O의 평균 수 |
bytes per I/O |
I/O 당 전송 된 평균 바이트 수 |
§ histogram.html
읽기만 또는 쓰기 만 수행되는 경우 당연히 하나의 report만 보여주며 각 SD 및 FSD에 대해 히스토그램이 생성되고 둘 이상의 지정된 경우 WD 및 FWD에 대해 히스토그램이 생성됩니다. 이 파일로 excel에서 각 구분된 파일로 사용하여 활용 가능합니다.
예제) Reads and writes:
min(ms) < max(ms) count %% cum%% '+': Individual%; '+-': Cumulative% 0.000 < 0.020 91 25.8523 25.8523 ++++++++++++ 0.020 < 0.040 2 0.5682 26.4205 ------------ 0.040 < 0.060 0 0.0000 26.4205 ------------- 0.060 < 0.080 1 0.2841 26.7045 ------------- 0.080 < 0.100 0 0.0000 26.7045 ------------- 0.100 < 0.200 0 0.0000 26.7045 ------------- 0.200 < 0.400 50 14.2045 40.9091 +++++++------------- 0.400 < 0.600 40 11.3636 52.2727 +++++-------------------- ………………………………….생략 2000.000 < max 0 0.0000 100.0000 -------------------------------------------------- |
§ total.html
예제) Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=1k
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
avg_2-3 996.00 0.97 1024 0.00 0.007 0.000 0.007 0.086 0.004 0.0 19.4 0.3
Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=2k
avg_2-3 1000.00 1.95 2048 0.00 0.007 0.000 0.007 0.054 0.004 0.0 7.6 0.2
Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=3k
avg_2-3 1000.00 2.93 3072 0.00 0.007 0.000 0.007 0.056 0.004 0.0 9.2 0.1 |
§ logfile.html
작업 절차가 나와있으며, java code에 의해 작성된 정보가 들어 있습니다.
예제)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Vdbench distribution: vdbench50406
18:19:59.901 input argument scanned: '-f/tmp/parmfile' 18:19:59.903 java.vendor Oracle Corporation 18:19:59.904 java.home /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre 18:19:59.904 java.vm.specification.version 1.7 18:19:59.904 java.vm.version 24.45-b08 18:19:59.904 java.vm.vendor Oracle Corporation 18:19:59.904 java.specification.version 1.7 18:19:59.904 java.class.version 51.0 18:19:59.905 user.name root 18:19:59.905 user.dir /vdbench 18:19:59.905 java.io.tmpdir /tmp 18:19:59.905 java.class.path ./:./classes:./vdbench.jar 18:19:59.905 os.name Linux 18:19:59.905 os.arch amd64 18:19:59.905 os.version 2.6.32-431.el6.x86_64 18:19:59.905 sun.arch.data.model 64 18:19:59.931 Creating anchor for /tmp/fsd1,fsd=fsd1 18:19:59.955 rd1 fsd to format: fsd1 18:19:59.956 rd1 format on host: localhost 18:19:59.958 Anchor size: anchor=/tmp/fsd1: dirs: 1; files: 100; bytes: 12.500m (13,107,200) 18:19:59.981 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-10-180922-18.19.59.861 -l localhost-0 -p 5570 18:20:00.298 Slave localhost-0 (pid 32305) connected to master 32276 18:20:00.306 All slaves are now connected
Link to Run Definitions: format_for_rd1 For loops: None rd1 For loops: None
18:20:00.449 Flushing all reports 18:20:00.451 slv=localhost-0 fwd=format fsd=fsd1 anchor=/tmp/fsd1 threads= 8 skew= 0.00 operation=read 18:20:00.485 Waiting for synchronization of all slaves 18:20:00.786 Synchronization of all slaves complete 18:20:01.002 Starting RD=format_for_rd1
18:20:01.002 Starting RD=format_for_rd1
18:20:01.189 localhost-0: Starting cleanup for anchor=/tmp/fsd1 18:20:01.200 localhost-0: anchor=/tmp/fsd1 deleted 100 files; 10000/sec 18:20:01.201 localhost-0: anchor=/tmp/fsd1 deleted 1 directories; 100/sec 18:20:01.202 localhost-0: anchor=/tmp/fsd1 mkdir complete. 18:20:01.218 localhost-0: anchor=/tmp/fsd1 create complete. Sep 22, 2018 .Interval. .ReqstdOps... ...cpu%... read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete... … (생략) |
4. 부하 Test
4.1. Test 환경
Vdbench : 5.0.4.0.6 |
1. Raw Device 환경 OS : RHEL 6.5, 2.6.32-431.el6.x86_64 DB : ORACLE 11.2.0.4 EE Single |
2. File System 환경 OS : RHEL 6.5, 2.6.32-431.el6.x86_64 DB : ORACLE 11.2.0.4 EE Single |
4.2. Raw-Device
RAW Device I/O는 기본적으로 제공하는 /tmp/pamfile 을 수정하여 사용하거나 pamfile을 만들어 사용할 수 있습니다.
4.2.1. Test Scenario
§ RHEL6.5 ORACLE 11gR2 § TEST1 : RAW Device 1개 § TEST2 : RAW Device 여러 개 § TEST3 : RAW Device 여러 개 , max iorate |
4.2.2. Test
§ Test1
§ 부하테스트 설정 [root@sw-single vdbench]# vi /tmp/pamfile sd =sd1, lun=/dev/raw/raw1 wd=wd1,sd=sd1,xfersize=4096,rdpct=100 rd=run1,wd=wd1, iorate=100, elapsed=10,interval=1 ** 파라미터 옵션 설명 10초 동안 I/O rate 100에서 4096 블록의 100% random read
§ 부하테스트 실행 [root@sw-single vdbench]# ./vdbench -f -o raw1/ 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'.
22:04:37.106 input argument scanned: '-f/tmp/parmfile' 22:04:37.109 input argument scanned: '-oraw1/' 22:04:37.169 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-10-180901-22.04.37.070 -l localhost-0 -p 5570 22:04:37.498 All slaves are now connected 22:04:39.006 Starting RD=rd1; I/O rate: 100; elapsed=5; For loops: None
Sep 01, 2018 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 22:04:40.059 1 55.00 0.05 1024 45.45 0.016 0.008 0.022 0.064 0.011 0.0 7.6 1.5 22:04:41.049 2 97.00 0.09 1024 55.67 0.014 0.009 0.020 0.046 0.008 0.0 2.6 0.3 22:04:42.054 3 88.00 0.09 1024 48.86 0.014 0.010 0.018 0.031 0.007 0.0 2.0 0.3 22:04:43.054 4 105.00 0.10 1024 53.33 0.014 0.008 0.020 0.047 0.009 0.0 1.5 0.3 22:04:44.060 5 105.00 0.10 1024 57.14 0.012 0.009 0.017 0.034 0.007 0.0 2.8 0.8 22:04:44.094 avg_2-5 90.00 0.09 1024 52.89 0.014 0.009 0.019 0.064 0.008 0.0 4.3 0.8 22:04:44.752 Vdbench execution completed successfully. Output directory: /vdbench/raw1
§ 파일 확인 [root@sw-single raw1]# ls config.html flatfile.html localhost-0.html localhost.html logfile.html parmscan.html sd1.html status.html swat_mon.txt totals.html errorlog.html histogram.html localhost-0.stdout.html localhost.var_adm_msgs.html parmfile.html sd1.histogram.html skew.html summary.html swat_mon_total.txt |
§ Test1 Report
§ Test2
§ 부하테스트 설정 [root@sw-single vdbench]# vi /vdbench/pamfile2 host=default,user=root,vdbench=/vdbench
sd=sd1,lun=/dev/raw/raw1,size=1g,openflags=o_direct sd=sd2,lun=/dev/raw/raw2,size=1g,openflags=o_direct wd=wd1,sd=(sd1,sd2),xfersize=4k,rdpct=75 wd=wd2,sd=(sd1,sd2),xfersize=8k,rdpct=100 rd=default,elapsed=10,interval=1 rd=run1,wd=(wd1,wd2),iorate=100 rd=run2,wd=(wd1,wd2),iorate=200
** 파라미터 옵션 설명 run1 : sd1,sd2 초당 40K 의 I/O, read/write 3:1의 초당 50K read 부하 run2 : run1의 I/O 비율 두배
** 부하테스트 실행 [root@sw-single vdbench]# ./vdbench -f pamfile2 -o raw2/ 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'.
15:29:19.889 input argument scanned: '-fparameter' 15:29:19.890 input argument scanned: '-oraw2/' 15:29:19.902 15:29:19.902 Specifying 'host=(xxx.yyy.com,host_x) has been deprecated. 15:29:19.902 Please specify 'hd=host_x,system=xxx.yyy.com' instead. 15:29:19.902 Vdbench will honor this parameter until the next release. 15:29:19.902 15:29:19.958 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-10-180922-15.29.19.855 -l localhost-0 -p 5570 15:29:20.292 All slaves are now connected 15:29:21.005 Starting RD=run1; I/O rate: 100; elapsed=10; For loops: None
Sep 22, 2018 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 15:29:22.061 1 81.00 0.47 6118 90.12 15.446 17.111 0.251 80.607 15.122 1.7 12.0 1.8 15:29:23.018 2 101.00 0.60 6204 86.14 21.043 24.390 0.244 321.741 44.419 1.7 2.6 0.3 15:29:24.057 3 87.00 0.53 6355 85.06 9.855 11.531 0.315 45.225 9.409 0.8 3.8 1.0 15:29:25.054 4 108.00 0.68 6561 92.59 12.231 13.191 0.225 89.240 14.204 1.3 2.3 0.5 15:29:26.053 5 106.00 0.60 5950 85.85 31.568 36.734 0.226 376.952 67.953 3.3 1.5 0.3 15:29:27.052 6 115.00 0.68 6233 86.96 12.143 13.936 0.190 113.458 14.233 1.4 2.0 0.5 15:29:28.050 7 97.00 0.58 6291 90.72 6.249 6.863 0.247 26.513 4.648 0.6 2.3 0.5 15:29:29.054 8 94.00 0.57 6405 91.49 11.357 12.394 0.206 61.361 13.354 1.1 4.3 1.5 15:29:30.053 9 107.00 0.65 6354 88.79 10.115 11.366 0.215 76.272 12.322 1.1 1.5 0.3 15:29:31.063 10 91.00 0.57 6616 89.01 13.517 15.158 0.224 81.500 14.937 1.2 2.0 0.0 15:29:31.131 avg_2-10 98.70 0.59 6307 88.65 14.472 16.294 0.234 376.952 29.458 1.4 3.9 0.7 15:29:31.137 * 15:29:31.137 ****************************************************************************************** 15:29:31.137 * Observed Workload skew for wd=wd1 delta greater than 1% (4.00). See skew.html for details * 15:29:31.137 ****************************************************************************************** 15:29:31.137 * 15:29:31.138 * 15:29:31.138 ****************************************************************************************** 15:29:31.138 * Possible reasons for workload skew being out of sync: * 15:29:31.138 * * 15:29:31.138 * - Elapsed time too short. * 15:29:31.138 * Each SD should have done at least 2000 i/o's. Adding 'warmup=nn' may help this. * 15:29:31.138 * For SD concatenation this is the ONLY acceptable reason. Contact me at the Oracle Vdbench Forum if the differences are too big. * 15:29:31.138 * * 15:29:31.138 * - A mix of seekpct=seq and random workloads. * 15:29:31.138 * Sequential workloads may run on only ONE slave, but random workloads * 15:29:31.138 * may run on multiple slaves. Workload skew depends on ALL workloads * 15:29:31.138 * running on all slaves. Force slave count to just one. (hd=default,jvms=1) * 15:29:31.138 * * 15:29:31.138 * - Not enough threads available to guarantee that all workloads can run * 15:29:31.138 * on all slaves. * 15:29:31.139 * * 15:29:31.139 * - There may be more, can't think (of any) right now. :-) * 15:29:31.139 * * 15:29:31.139 * You may use 'abort_failed_skew=nn' for Vdbench to abort after skew failures. See documentation. * 15:29:31.139 * * 15:29:31.139 ****************************************************************************************** 15:29:31.139 * 15:29:32.001 Starting RD=run2; I/O rate: 200; elapsed=10; For loops: None
Sep 22, 2018 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 15:29:33.012 1 173.00 1.00 6037 89.02 10.899 12.217 0.221 76.613 12.267 1.9 12.3 1.6 15:29:34.046 2 199.00 1.14 6030 86.43 9.329 10.758 0.231 58.197 9.348 1.9 2.8 0.8 15:29:35.049 3 211.00 1.24 6153 90.52 9.855 10.868 0.180 63.725 10.473 2.1 2.3 0.5 15:29:36.047 4 209.00 1.23 6173 87.56 9.553 10.884 0.181 82.292 10.672 2.0 1.5 0.3 15:29:37.051 5 228.00 1.30 5964 87.72 11.104 12.621 0.270 105.695 15.523 2.5 2.0 0.5 15:29:38.047 6 197.00 1.16 6154 82.74 10.412 12.537 0.223 96.949 16.341 2.1 1.0 0.3 15:29:39.047 7 213.00 1.22 6019 87.79 8.243 9.361 0.201 41.784 8.031 1.7 2.5 0.8 15:29:40.049 8 201.00 1.20 6256 88.56 9.765 11.006 0.157 66.658 10.160 2.0 1.3 0.5 15:29:41.047 9 194.00 1.20 6460 93.30 9.993 10.697 0.193 59.814 10.303 1.9 1.5 0.5 15:29:42.056 10 226.00 1.27 5890 85.40 7.725 9.014 0.189 48.316 7.957 1.7 1.8 0.3 15:29:42.077 avg_2-10 205.10 1.19 6109 87.86 9.656 10.961 0.207 105.695 11.438 2.0 3.7 0.7 15:29:42.546 Vdbench execution completed successfully. Output directory: /vdbench/raw2
|
§ Test2 Report
§ Summary.html (RD가 2개라서 RD별로 나옴)
Sep 22, 2018 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 15:29:22.059 1 81.00 0.47 6118 90.12 15.446 17.111 0.251 80.607 15.122 1.7 12.0 1.8 15:29:23.018 2 101.00 0.60 6204 86.14 21.043 24.390 0.244 321.741 44.419 1.7 2.6 0.3 15:29:24.056 3 87.00 0.53 6355 85.06 9.855 11.531 0.315 45.225 9.409 0.8 3.8 1.0 15:29:25.053 4 108.00 0.68 6561 92.59 12.231 13.191 0.225 89.240 14.204 1.3 2.3 0.5 15:29:26.052 5 106.00 0.60 5950 85.85 31.568 36.734 0.226 376.952 67.953 3.3 1.5 0.3 15:29:27.051 6 115.00 0.68 6233 86.96 12.143 13.936 0.190 113.458 14.233 1.4 2.0 0.5 15:29:28.049 7 97.00 0.58 6291 90.72 6.249 6.863 0.247 26.513 4.648 0.6 2.3 0.5 15:29:29.053 8 94.00 0.57 6405 91.49 11.357 12.394 0.206 61.361 13.354 1.1 4.3 1.5 15:29:30.051 9 107.00 0.65 6354 88.79 10.115 11.366 0.215 76.272 12.322 1.1 1.5 0.3 15:29:31.063 10 91.00 0.57 6616 89.01 13.517 15.158 0.224 81.500 14.937 1.2 2.0 0.0 15:29:31.130 avg_2-10 98.70 0.59 6307 88.65 14.472 16.294 0.234 376.952 29.458 1.4 3.9 0.7 15:29:31.137 * 15:29:31.137 ********************************************************************************************* 15:29:31.137 * Observed Workload skew for wd=wd1 delta greater than 1% (4.00). See skew.html for details * 15:29:31.137 ********************************************************************************************* 15:29:31.137 *
15:29:32.001 Starting RD=run2; I/O rate: 200; elapsed=10; For loops: None
Sep 22, 2018 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 15:29:33.011 1 173.00 1.00 6037 89.02 10.899 12.217 0.221 76.613 12.267 1.9 12.3 1.6 15:29:34.046 2 199.00 1.14 6030 86.43 9.329 10.758 0.231 58.197 9.348 1.9 2.8 0.8 15:29:35.049 3 211.00 1.24 6153 90.52 9.855 10.868 0.180 63.725 10.473 2.1 2.3 0.5 15:29:36.046 4 209.00 1.23 6173 87.56 9.553 10.884 0.181 82.292 10.672 2.0 1.5 0.3 15:29:37.050 5 228.00 1.30 5964 87.72 11.104 12.621 0.270 105.695 15.523 2.5 2.0 0.5 15:29:38.047 6 197.00 1.16 6154 82.74 10.412 12.537 0.223 96.949 16.341 2.1 1.0 0.3 15:29:39.047 7 213.00 1.22 6019 87.79 8.243 9.361 0.201 41.784 8.031 1.7 2.5 0.8 15:29:40.049 8 201.00 1.20 6256 88.56 9.765 11.006 0.157 66.658 10.160 2.0 1.3 0.5 15:29:41.047 9 194.00 1.20 6460 93.30 9.993 10.697 0.193 59.814 10.303 1.9 1.5 0.5 15:29:42.056 10 226.00 1.27 5890 85.40 7.725 9.014 0.189 48.316 7.957 1.7 1.8 0.3 15:29:42.077 avg_2-10 205.10 1.19 6109 87.86 9.656 10.961 0.207 105.695 11.438 2.0 3.7 0.7 15:29:42.547 Vdbench execution completed successfully
ü RD2는 약 RD1의 두배의 차이
§ pamscan.html
15:29:19.896 line: host=default,user=root,vdbench=/vdbench 15:29:19.896 keyw: host=default 15:29:19.897 parm: default 15:29:19.901 keyw: host=default 15:29:19.902 parm: default 15:29:19.902 keyw: user=root 15:29:19.902 parm: root 15:29:19.902 keyw: vdbench=/vdbench 15:29:19.902 parm: /vdbench 15:29:19.902 line: sd=sd1,lun=/dev/raw/raw1,size=1g,openflags=o_direct 15:29:19.902 keyw: sd=sd1 15:29:19.903 parm: sd1 15:29:19.904 keyw: sd=sd1 15:29:19.904 parm: sd1 15:29:19.906 keyw: sd=sd1 15:29:19.906 parm: sd1 15:29:19.907 keyw: sd=sd1 15:29:19.907 parm: sd1 15:29:19.907 keyw: lun=/dev/raw/raw1 15:29:19.907 parm: /dev/raw/raw1 15:29:19.908 keyw: size=1g 15:29:19.908 parm: 1g 15:29:19.908 keyw: openflags=o_direct 15:29:19.908 parm: o_direct 15:29:19.908 line: sd=sd2,lun=/dev/raw/raw2,size=1g,openflags=o_direct 15:29:19.908 keyw: sd=sd2 15:29:19.908 parm: sd2 15:29:19.908 keyw: lun=/dev/raw/raw2 15:29:19.908 parm: /dev/raw/raw2 15:29:19.909 keyw: size=1g 15:29:19.909 parm: 1g 15:29:19.909 keyw: openflags=o_direct 15:29:19.909 parm: o_direct 15:29:19.909 line: wd=wd1,sd=(sd1,sd2),xfersize=4k,rdpct=75 15:29:19.909 keyw: wd=wd1 15:29:19.909 parm: wd1 15:29:19.910 keyw: wd=wd1 15:29:19.910 parm: wd1 15:29:19.911 keyw: sd=(sd1,sd2) 15:29:19.911 parm: sd1 15:29:19.911 parm: sd2 15:29:19.912 keyw: xfersize=4k 15:29:19.912 parm: 4k 15:29:19.916 keyw: rdpct=75 15:29:19.916 parm: 75 15:29:19.916 line: wd=wd2,sd=(sd1,sd2),xfersize=8k,rdpct=100 15:29:19.916 keyw: wd=wd2 15:29:19.916 parm: wd2 15:29:19.916 keyw: sd=(sd1,sd2) 15:29:19.916 parm: sd1 15:29:19.916 parm: sd2 15:29:19.916 keyw: xfersize=8k 15:29:19.916 parm: 8k 15:29:19.916 keyw: rdpct=100 15:29:19.916 parm: 100 15:29:19.917 line: rd=default,elapsed=10,interval=1 15:29:19.917 keyw: rd=default 15:29:19.917 parm: default 15:29:19.919 keyw: rd=default 15:29:19.919 parm: default 15:29:19.924 keyw: rd=default 15:29:19.924 parm: default 15:29:19.924 keyw: elapsed=10 15:29:19.924 parm: 10 15:29:19.924 keyw: interval=1 15:29:19.924 parm: 1 15:29:19.924 line: rd=run1,wd=(wd1,wd2),iorate=100 15:29:19.924 keyw: rd=run1 15:29:19.924 parm: run1 15:29:19.926 keyw: wd=(wd1,wd2) 15:29:19.926 parm: wd1 15:29:19.926 parm: wd2 15:29:19.926 keyw: iorate=100 15:29:19.926 parm: 100 15:29:19.926 line: rd=run2,wd=(wd1,wd2),iorate=200 15:29:19.926 keyw: rd=run2 15:29:19.926 parm: run2 15:29:19.927 keyw: wd=(wd1,wd2) 15:29:19.927 parm: wd1 15:29:19.927 parm: wd2 15:29:19.927 keyw: iorate=200 15:29:19.927 parm: 200
§ Skew.html
15:29:21.006 Starting RD=run1; I/O rate: 100; elapsed=10; For loops: None
15:29:31.132 15:29:31.132 Counts reported below are for non-warmup intervals. 15:29:31.133 15:29:31.133 i/o MB/sec bytes read resp read write resp resp queue 15:29:31.133 SD: rate 1024**2 i/o pct time resp resp max stddev depth 15:29:31.133 sd1 49.50 0.30 6388 89.29 13.051 14.587 0.244 376.952 25.749 0.6 15:29:31.134 sd2 49.20 0.29 6227 88.01 15.901 18.037 0.226 321.741 32.733 0.8 15:29:31.134 Total 98.70 0.59 6307 88.65 14.472 16.294 0.234 376.952 29.458 1.4 15:29:31.134 15:29:31.134 Calculated versus requested workload skew. (Delta only shown if > 0.10% absolute) 15:29:31.134 Note that for an Uncontrolled MAX run workload skew is irrelevant. 15:29:31.135 15:29:31.135 i/o MB/sec bytes read resp read write resp resp queue skew skew skew 15:29:31.135 WD: rate 1024**2 i/o pct time resp resp max stddev depth requested observed delta 15:29:31.136 wd1 45.40 0.18 4096 75.33 14.221 18.802 0.234 319.475 32.645 0.6 50.00% 46.00% 4.00% 15:29:31.136 wd2 53.30 0.42 8192 100.00 14.685 14.685 0.000 376.952 26.471 0.8 50.00% 54.00% -4.00% 15:29:31.136 Total 98.70 0.59 6307 88.65 14.472 16.294 0.234 376.952 29.458 1.4 100.00% 100.00%
15:29:32.002 Starting RD=run2; I/O rate: 200; elapsed=10; For loops: None
15:29:42.078 15:29:42.078 i/o MB/sec bytes read resp read write resp resp queue 15:29:42.078 SD: rate 1024**2 i/o pct time resp resp max stddev depth 15:29:42.078 sd1 103.00 0.60 6100 88.16 9.722 11.000 0.214 96.949 11.632 1.0 15:29:42.078 sd2 102.10 0.60 6117 87.56 9.589 10.922 0.200 105.695 11.243 1.0 15:29:42.078 Total 205.10 1.19 6109 87.86 9.656 10.961 0.207 105.695 11.438 2.0 15:29:42.078 15:29:42.078 Calculated versus requested workload skew. (Delta only shown if > 0.10% absolute) 15:29:42.078 Note that for an Uncontrolled MAX run workload skew is irrelevant. 15:29:42.078 15:29:42.078 i/o MB/sec bytes read resp read write resp resp queue skew skew skew 15:29:42.078 WD: rate 1024**2 i/o pct time resp resp max stddev depth requested observed delta 15:29:42.078 wd1 104.30 0.41 4096 76.13 8.404 10.975 0.207 105.695 10.854 0.9 50.00% 50.85% -0.85% 15:29:42.079 wd2 100.80 0.79 8192 100.00 10.951 10.951 0.000 96.949 11.879 1.1 50.00% 49.15% 0.85% 15:29:42.079 Total 205.10 1.19 6109 87.86 9.656 10.961 0.207 105.695 11.438 2.0 100.00% 100.00%
|
§ Test3
§ 부하테스트 설정 [root@sw-single vdbench]# vi /vdbench/pamfile3 sd=sd01,lun=/dev/raw/raw1,threads=10,size=1g sd=sd02,lun=/dev/raw/raw2,threads=10,size=1g sd=sd03,lun=/dev/raw/raw3,threads=10,size=1g sd=sd04,lun=/dev/raw/raw4,threads=10,size=1g
wd=wd01,sd=sd01,xfersize=8k,rdpct=70,seekpct=100,openflags=o_direct wd=wd02,sd=sd02,xfersize=8k,rdpct=70,seekpct=100,openflags=o_direct wd=wd03,sd=sd03,xfersize=8k,rdpct=70,seekpct=100,openflags=o_direct wd=wd04,sd=sd04,xfersize=8k,rdpct=70,seekpct=100,openflags=o_direct
rd=run1,wd=wd*,iorate=max,elapsed=300,interval=1,warmup=10 rd=run2,wd=wd*,iorate=max,elapsed=300,interval=1,warmup=100
§ Parameter 설명 각 raw당 8K의 전송속도, 70% read, 100% iba, 10개의 thread를 이용하여 elpaesd time 310까지 1초당 max iorate측정, rd2은 400까지 1초당 max iorate 측정
§ 부하테스트 실행 [root@sw-single vdbench]# ./vdbench -f pamfile3 -o raw3/
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'.
16:04:55.675 input argument scanned: '-fparameter' 16:04:55.676 input argument scanned: '-oraw3/' 16:04:55.730 16:04:55.730 Adjusted default JVM count for host=localhost from jvms=1 to jvms=4 because of iorate=max and a total of 4 sds. 16:04:55.731 16:04:55.766 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-10-180922-16.04.55.524 -l localhost-0 -p 5570 16:04:55.787 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-11-180922-16.04.55.524 -l localhost-1 -p 5570 16:04:55.807 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-12-180922-16.04.55.524 -l localhost-2 -p 5570 16:04:55.828 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-13-180922-16.04.55.524 -l localhost-3 -p 5570 16:04:56.282 All slaves are now connected 16:04:58.005 Starting RD=run1; I/O rate: Uncontrolled MAX; elapsed=300 warmup=10; For loops: None
|
§ Test3 Report
4.3. File-System
4.3.1. Test Scenario
§ RHEL6.5 ORACLE 11gR2 § TEST1: DB 파일 시스템 부하 |
4.3.1. Test
§ Test1
§ 부하테스트 설정 [root@sw-single vdbench]# vi /vdbench/parameter4
fsd=fsd1,anchor=/ora11,depth=3,width=1,files=15,size=10m fsd=fsd2,anchor=/ora12,depth=4,width=1,files=30,size=10m
fwd=fwd1,fsd=fsd1,rdpct=70,xfersize=8k,fileio=random,fileselect=random,threads=10 fwd=fwd2,fsd=fsd2,rdpct=70,xfersize=8k,fileio=random,fileselect=random,threads=10
rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=100,interval=1 ** 파라미터 설명 Format = yes로 할경우 해당 디렉토리에 파일을 생성함 각각의 mount 포인트에 디렉토리 3,4의 depth에 파일 12개의 사이즈 10g로 ramdon I/O 부하
ü Format=yes를 한 후에 –c 옵션을 같이 사용할경우 파일시스템을 생성하지 않습니다. ü Format=yes를 한후에 vdbench실행 할 때 –c 옵션을 사용하지 않을 경우 해당 anchor에 파일이 쌓여집니다.
§ 부하테스트 실행 [root@sw-single vdbench]# ./vdbench -c -f parameter4 -o filesystem/
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'.
18:02:17.578 input argument scanned: '-c' 18:02:17.579 input argument scanned: '-fparameter' 18:02:17.580 input argument scanned: '-ofilesystem/' 18:02:17.631 Anchor size: anchor=/ora11: dirs: 3; files: 15; bytes: 150.000m (157,286,400) 18:02:17.631 Anchor size: anchor=/ora12: dirs: 4; files: 30; bytes: 300.000m (314,572,800) 18:02:17.632 Estimated totals for all 2 anchors: dirs: 7; files: 45; bytes: 450.000m 18:02:17.667 Starting slave: /vdbench/vdbench SlaveJvm -m localhost -n localhost-10-180922-18.02.17.551 -l localhost-0 -p 5570 18:02:17.987 All slaves are now connected 18:02:19.002 Starting RD=format_for_rd1 18:02:19.347 localhost-0: Starting cleanup for anchor=/ora11 18:02:19.362 localhost-0: anchor=/ora11 mkdir complete. 18:02:19.363 localhost-0: Starting cleanup for anchor=/ora12 18:02:19.371 localhost-0: anchor=/ora12 mkdir complete. 18:02:19.458 localhost-0: anchor=/ora11 create complete. 18:02:19.500 localhost-0: anchor=/ora12 create complete. …. (생략) 18:04:01.081 ******************************************************************** 18:04:01.081 * Warning for host=localhost: average processor utilization 87.8% * 18:04:01.081 * Any processor utilization over 80% could mean that your system * 18:04:01.081 * does not have enough cycles to run the highest rate possible. * 18:04:01.081 ******************************************************************** 18:04:01.081 * 18:04:01.081 * 18:04:01.082 **************************************************************************************** 18:04:01.082 * Warning: total amount of i/o per second per slave (1017257) greater than 100000. * 18:04:01.082 * You may need to adjust your total slave count. * 18:04:01.082 * * 18:04:01.082 * See 'jvms=' in documentation for raw (SD/WD) workloads). * 18:04:01.082 * See 'host=' and/or 'clients=' in documentation for file system (FSD/FWD) workloads). * 18:04:01.082 * * 18:04:01.082 * rd=rd1 actively used 1 slaves. * 18:04:01.082 **************************************************************************************** 18:04:01.082 * 18:04:02.084 18:04:02.084 Miscellaneous statistics: 18:04:02.084 (These statistics do not include activity between the last reported interval and shutdown.) 18:04:02.084 WRITE_OPENS Files opened for write activity: 79,487 794/sec 18:04:02.085 FILE_BUSY File busy: 62,020 620/sec 18:04:02.085 FILE_CLOSES Close requests: 79,467 794/sec 18:04:02.085 18:04:02.244 Vdbench execution completed successfully. Output directory: /vdbench/filesystem |
§ Test1 Report
§ Summary.html 18:02:19.003 Starting RD=format_for_rd1
Sep 22, 2018 .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 18:02:20.061 1 3600.0 0.333 15.2 5.48 0.0 0.0 0.000 3600.0 0.333 0.00 450.0 450.00 131072 7.0 0.125 0.0 0.000 45.0 33.529 45.0 1.223 45.0 0.012 0.0 0.000 18:02:20.101 avg_2-1 3600.0 0.333 15.2 5.48 0.0 0.0 0.000 3600.0 0.333 0.00 450.0 450.00 131072 7.0 0.125 0.0 0.000 45.0 33.529 45.0 1.223 45.0 0.012 0.0 0.000
18:02:21.002 Starting RD=rd1; elapsed=100; fwdrate=max. For loops: None
Sep 22, 2018 .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 18:02:22.093 1 421529 0.007 37.3 12.8 70.0 294912 0.003 126617 0.016 2304 989.2 3293.2 8192 0.0 0.000 0.0 0.000 0.0 0.000 338.0 0.169 321.0 0.011 0.0 0.000 18:02:23.028 2 927781 0.005 95.5 47.6 70.1 649978 0.002 277803 0.012 5077 2170 7248.2 8191 0.0 0.000 0.0 0.000 0.0 0.000 725.0 0.188 724.0 0.012 0.0 0.000 18:02:24.073 3 963661 0.007 88.6 47.5 70.0 674563 0.003 289098 0.018 5270 2258 7528.5 8191 0.0 0.000 0.0 0.000 0.0 0.000 757.0 0.129 756.0 0.009 0.0 0.000 …. (생략) 18:04:01.050 avg_2-100 1017257 0.007 87.8 49.7 70.0 712150 0.003 305106 0.018 5563 2383 7947.3 8191 0.0 0.000 0.0 0.000 0.0 0.000 794.9 0.033 794.7 0.007 0.0 0.000
ü 평균 87% CPU 사용, 70% read, 7947M/S 전송 속도, 평균 slave당 I/O (1017257)
§ Anchor.html ......Anchor size.... ......Total size..... ......Workingset..... ....Existing ........ ...Opened... files dirs bytes files dirs bytes files dirs bytes files dirs bytes files bytes
Link to Run Definitions: format_for_rd1 For loops: None d1 For loops: None
/ora11 15 3 150.0m 0 0 0 0 0 0 0 0 0 0 0 /ora12 30 4 300.0m 0 0 0 0 0 0 0 0 0 0 0 18:02:19.004 Starting RD=format_for_rd1
/ora12 30 4 300.0m 0 0 0 0 0 0 30 4 300.0m 30 300.0m /ora11 15 3 150.0m 0 0 0 0 0 0 15 3 150.0m 15 150.0m
18:02:21.002 Starting RD=rd1; elapsed=100; fwdrate=max. For loops: None
/ora12 30 4 300.0m 0 0 0 0 0 0 30 4 300.0m 30 300.0m /ora11 15 3 150.0m 0 0 0 0 0 0 15 3 150.0m 15 150.0m
§ Status.html
09/22/2018-18:02:17-KST Starting slaves 09/22/2018-18:02:17-KST Slave localhost-0 (pid 29428) connected to master 29402 09/22/2018-18:02:17-KST Slaves connected 09/22/2018-18:02:17-KST Query host configuration started 09/22/2018-18:02:18-KST Query host configuration completed 09/22/2018-18:02:19-KST Starting rd=format_for_rd1 For loops: None 09/22/2018-18:02:20-KST Warmup done rd=format_for_rd1 For loops: None 09/22/2018-18:02:20-KST Workload done rd=format_for_rd1 For loops: None 09/22/2018-18:02:20-KST Slaves done rd=format_for_rd1 For loops: None 09/22/2018-18:02:21-KST Starting rd=rd1 For loops: None 09/22/2018-18:02:22-KST Warmup done rd=rd1 For loops: None 09/22/2018-18:04:01-KST Workload done rd=rd1 For loops: None 09/22/2018-18:04:02-KST Slaves done rd=rd1 For loops: None 09/22/2018-18:04:02-KST Shutting down slaves 09/22/2018-18:04:02-KST Vdbench complete
|
5. Reference
- https://download.oracle.com/otn/utilities_drivers/vdbench/vdbench-
50407.pdf?AuthParam=1542163845_0cdd12a92ffea18c61347aac5f55c32e
- How to Setup and Run vdbench(문서 ID 2383371.1)
<끝>
DATA기술팀 최승욱 엔지니어
#굿어스데이터 #GoodusData #DB기술노트 #Oralce #오라클 #VDBENCH
"People make a better world with Data"
[Written by GoodusData / 굿어스데이터]
'데이터 Tech' 카테고리의 다른 글
[굿어스데이터] DB Tech Note [83회] Oracle Failsafe (0) | 2019.04.25 |
---|---|
[DB기술노트82회] PostgreSQL 9.6 (Backup & Recovery) (0) | 2019.04.25 |
[DB기술노트80회] Oracle Golden Gate 12c New Feature (0) | 2019.04.25 |
[DB기술노트79회] Recovering Tables (with Rman) (0) | 2019.04.25 |
[기술노트78회] DMU(Database Migration Assistant for Unicode) (0) | 2019.04.25 |
이 글을 공유하기