달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2013. 4. 2. 17:59

디스크 성능 분석 도구 (SQLIO) Performance2013. 4. 2. 17:59

많은 분들이 디스크 성능 측정과 관련해 IOMeter 등의 도구들을 많이 사용하시고 계실텐데요, 제가 소개해 드릴 도구는 Microsoft에서 배포하는 SQLIO라는 디스크 성능 측정 도구입니다.

SQLIO Disk Subsystem Benchmark Tool
http://www.microsoft.com/en-us/download/details.aspx?id=20163

우선 프로그램을 다운 받아 설치하시면 되며, 기본적으로 32비트 Program Files\SQLIO 디렉터리에 설치됩니다.
실행 방법은 간단히 SQLIO.EXE 프로그램을 실행하실 수도 있겠으나 몇 가지 설정 방법을 설명 드리겠습니다.
*주의* 운영 중인 서버에서는 실행하시지 말 것을 적극 권장 드립니다.

먼저, 설치 디렉터리에 보면 param.txt 라는 이름의 기본 설정 파일이 있습니다.
이 파일을 메모장으로 열어 보시면 기본적으로 아래와 같은 내용이 입력되어 있습니다.

c:\testfile.dat 2 0x0 100
#d:\testfile.dat 2 0x0 100


입력된 값에 대한 설명은 다음과 같습니다.
c:\testfile.dat : IO 테스트 파일 경로
2 : 실행 스레드 수
0x0 : CPU 마스크
100 : 테스트 파일 크기(MB)

부연 설명을 드리자면 테스트할 드라이브에 파일을 생성하도록 설정하고, 실행 스레드 수는 시스템의 코어 수를 입력하시면 전체 CPU를 사용하게 됩니다. 그리고, 테스트에 사용할 파일은 되도록이면 크게 잡아주시는 것이 좀 더 정확한 데이터를 얻으실 수 있으니, 적어도 5GB 이상으로 설정해 주시는 것이 좋겠습니다. 참고로, 저의 테스트 환경에서는 아래와 같이 설정하였습니다.

c:\testfile.dat 16 0x0 5120
#d:\testfile.dat 2 0x0 100



설정 파일에 대한 수정이 끝나셨으면 이제 SQLIO.exe 명령을 아래의 예를 보시고 적당한 매개 변수를 달아 실행하시면 되겠습니다. 기본 테스트 시간은 30초이며, 테스트 시간을 정하시고자 하는 경우에는 -s 매개 변수를 사용하시면 됩니다.

sqlio -kR -BH -LS -o8 -fsequential -Fparam.txt -b8

옵션에 대한 설명
-kW : 쓰기 테스트 실행
-kR : 읽기 테스트 실행
-BH : 캐시 설정(하드웨어 캐시)
-LS : 지연 설정(시스템 타이머)
-o16 : 스레드 당 동시 IO 수(16개)
-frandom : 렌덤 IO 테스트
-fsequential : 순차 IO 테스트
-Fparam.txt : 참조 파라미터 파일
-b8 : 테스트 블럭 크기(8KB)


아래는 테스트 결과를 C:\<서버 이름_SQLIO>.txt 파일로 기록하는 내용인데, 텍스트 파일로 내린 이유는 아래에서 설명 드리겠지만 결과를 분석해 엑셀 시트로 간편하게 만드는 방법이 있기 때문입니다.

sqlio -kR -BH -LS -o16 -fsequential -Fparam.txt -b8 > C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -fsequential -Fparam.txt -b32 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -fsequential -Fparam.txt -b64 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -fsequential -Fparam.txt -b128 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -fsequential -Fparam.txt -b256 >> C:\%COMPUTERNAME%_SQLIO.txt

sqlio -kW -BH -LS -o16 -fsequential -Fparam.txt -b8 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -fsequential -Fparam.txt -b32 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -fsequential -Fparam.txt -b64 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -fsequential -Fparam.txt -b128 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -fsequential -Fparam.txt -b256 >> C:\%COMPUTERNAME%_SQLIO.txt

sqlio -kR -BH -LS -o16 -frandom -Fparam.txt -b8 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -frandom -Fparam.txt -b32 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -frandom -Fparam.txt -b64 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -frandom -Fparam.txt -b128 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kR -BH -LS -o16 -frandom -Fparam.txt -b256 >> C:\%COMPUTERNAME%_SQLIO.txt

sqlio -kW -BH -LS -o16 -frandom -Fparam.txt -b8 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -frandom -Fparam.txt -b32 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -frandom -Fparam.txt -b64 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -frandom -Fparam.txt -b128 >> C:\%COMPUTERNAME%_SQLIO.txt
sqlio -kW -BH -LS -o16 -frandom -Fparam.txt -b256 >> C:\%COMPUTERNAME%_SQLIO.txt


출력된 결과를 직접 눈으로 확인하고 정리를 하셔도 되겠지만 좀 더 편하게 결과를 분석할 수 있는 방법을 알려 드리겠습니다. 먼저, 결과 파일을 MS Office가 설치되어 있는 PC로 복사해 온 다음 첨부된 PowerShell 스크립트 파일을 매개 변수로 결과 파일을 주어 실행하시면 아래와 같이 자동으로 결과를 Parsing 해서 엑셀 시트로 만들어 줍니다. PowerShell 스크립트의 출처는 http://sqlblog.com/blogs/jonathan_kehayias 입니다.









:
Posted by 커널64