본문 바로가기

Technical/DBMS

HammerOra로 DBMS 성능 측정하기(TPC-C) -2


이전 글을 포스팅 하고 보니 의외로 HammerOra 를 사용해서 DBMS 벤치마킹을 하는 작업이 단순하지 않다는 생각이 들어, 따라하기 버전의 테크니컬 리포트 하나 정도는 만들어 둠이 좋을 듯하여 같은 제목 일련번호 2를 붙여 추가로 포스팅한다.


실제로 구글링, 네이버링을 해서 국내나 해외사이트들의 HammerOra 관련 정보를 찾아 보아도, 반드시 알아 두고 체크해 주어야 하는 데도 불구하고, 그에 대한 주의사항이 없는 경우가 많다. 그래서 더 이상 정상적인 진행이 되지 않는 경우가 대부분이며, 심지어 HammerOra 매뉴얼에서 조차, 진행 과정에 대한 명확한 설명이 명료하게 되어 있지 않은 부분도, 본 글을 추가하는 이유 중의 하나이다.

 

글을 보시는 분들 중, 개인적으로 데이터베이스 성능 측정을 해 보고자 하는 분은 직접 따라 해 보시고, 궁금하거나 잘 안 풀리는 부분이 있으면 부담 없이 비밀 댓글로 문의해 주시면, 아는 범위 내에서 도움을 드리도록 하겠다.



데이터베이스 성능 측정


HammerOra 버전은 2.11, 대상 DBMS는 MSSQL Server를 적용하였고, 각 서버는 LGU+ 의 CloudN내의 가상서버를 사용하였다. 


- HammerOra server: CPU4, Mem2g

- DB Server: CPU2, Mem4g


덧붙여 말하지만 본 테스트는 특정 데이터베이스나 서버의 성능을 측정하고자 하는 것이 아니므로, 결과로 나타나는 성능수치에 대해서는 특별히 관심을 두지 않아도 되며, 단지 본인의 테스트 결과와의 단순 비교정보로 생각해주기 바란다. 실제로 하드웨어의 규모나 성능에 따라 측정 결과는 1~2만 tpmC부터 수십만~수백만 tpmC 까지 다양한 결과를 보여주게 된다.


1. DB Server의 설정

DB Server는 Windows 2008 R2, MS SQLServer 2008 standard 버전을 사용하였다. 테스트용 데이터베이스 엔진의 관리자 계정은 데이터베이스 생성 권한을 가지는 sa 계정을 사용한다.


2. HammerOra server의 설정

Windows 2008 R2, HammerOra 2.11, SQL Server Native Client 10.0(이전 포스팅 참조)


3. TPC-C schema 생성


3.1. HammerOra 실행

프로그램을 실행하면 로고 화면이 나오고 조금은 세련되지 못한 HammerOra 메인 화면이 나타난다.


3.2. TPC-C 데이터베이스 구축


TPC-C 를 위한 데이터베이스는 전자상거래의 비즈니스모델을 구현, 시뮬레이션하게 되는데, 위의 그림과 같이 창고/상품 정보, 고객과 각 고객별 권역정보로 구성되며, TPC-C 스키마를 생성하게 되면 실제와 유사한 데이터가 자동으로 생성되어 데이터베이스가 구축된다.




메인화면 좌측의 메뉴영역에서 SQL Server를 더블클릭하면 위의 팝업창에 선택사항이 나타나고 기본 모델인 TPC-C가 선택된 상태가 된다. OK 선택.



 

Schema Build 메뉴의 +버튼을 선택하고 Options를 더블클릭하면 위의 팝업화면이 나타나며, 스키마를 생성할 데이터베이스 서버의 ip주소와 접속 정보를 입력하고 OK 선택.




 

실제로 스키마와 데이터베이스를 구축하는 단계로 가기 위해 Build 를 더블 클릭(또는 상단의 블럭 모양의 아이콘 클릭)한다. 확인 팝업창에서 '예(Y)' 선택.



 

선택 옵션에 따라 데이터베이스 생성, 창고정보/상품정보/고객정보 등의 데이터 등록이 진행되며 수분~수십분 가량 경과후에 위의 그림과 같이 SCHEMA COMPLETE 메시지가 나타나고 상단 상태창에 COMPLETE 메시지가 보이면 스키마 생성이 완료된 상태이다.



 

여기서부터 주의해서 진행해야 하는데(주의 1), 위 화면에서와 같이, 상단 아이콘의 Destroy Virtual Users 아이콘(신호등 모양)을 클릭하여 스키마 생성시에 사용된 가상 유저 정보를 Clear 해 주어야만 오류 없이 다음 단계로 진행할 수가 있다.



 

이제 부하를 발생시킬 드라이버 스크립트를 정의하는 단계이다. 좌측 메뉴창에서 Driver Script 메뉴의 + 버튼을 클릭하고 Options를 더블 클릭. 팝업 화면에서 Standard Driver Script(이미 선택 되어 있음), Total trx per User(가상 유저당 트랜잭션 수) 의 입력창에 10000 을 입력하고 OK 선택(당연히 수치는 조정 가능)



 

여기도 주의할 지점(주의 2). 앞에서 드라이버 스크립트 옵션 지정 후, 위의 화면과 같이 반드시 Load 메뉴을 더블클릭하여 드라이버 스크립트를 로드하여야 다음 단계 진행 가능.



 

부하를 발생시킬 가상 유저 수와 반복 횟수를 위의 화면과 같이 입력하고 OK 선택.

 


 

 

가상 유저 생성 단계(주의 3). 좌측 메뉴 창의 Create 메뉴를 더블클릭(또는 상단의 사람 아이콘=Create Virtual Users 클릭)하여 가상유저를 생성하여야만 벤치마킹의 수행이 가능하다.


이제 준비 끝.

 


 

4. 벤치마킹 시작과 결과 보기


4.1. 테스트 시작


 

위의 그립에서 상단의 화살표 아이콘(Run Virtual Users)를 클릭하면 테스트가 시작된다.



4.2. 테스트 중지/재개


 

테스트가 진행되는 동안 우측 창의 Virtual User Output 탭화면에서 각 가상 유저들의 시뮬레이션되어 발생되는 액션에 대한 트랜잭션의 들이 출력된다. 이 작업을 멈추고 싶다면 상단 아이콘 중 화살표 아이콘 왼쪽의 신호등 아이콘(원래는 가상유저 생성아이콘이며, 테스트가 진행되면 아이콘 모양이 신호등 모양으로 바뀜을 알 수 있다)을 클릭하여 멈출 수 있다.


 

 

테스트에 투입되는 가상유저의 수를 변경하고 싶다면 앞에서 설명한 신호등 아이콘을 클릭하여 테스트를 멈춘 후, Virtual User의 Options 메뉴를 더블클릭하여 가상 유저수를 수정하고 테스트를 처음부터 다시 시작할 수도 있다.



 

앞에서 가상 유저 수를 4로 변경하여 테스트를 다시 시작하는 화면이다. 이 때도 역시 마찬가지로 Create 메뉴를 더블 클릭(주의 3 참조)하여 가상 유저 생성후, Run Virtual Users 아이콘을 클릭하여 테스트를 진행한다.



4.3. 테스트 성능 수치(tpmC, TPC-C 에 의한 분당 trx수) 확인하기


 

tpmC 측정 성능 수치 값을 확인하기 위해서는 상단의 펜 모양 아이콘(Transaction Counter)을 클릭한다.



 

앞의 선택 결과에 따라 테스트가 진행되는 도중에 측정되는 tpmC의 수치 값이 그래프와 함꼐 출력됨을 확인할 수 있다.

 


 

 

(참고) 그래프 Refresh 주기 등을 변경하기 위해서는 상단 메인 메뉴의 Options > Transaction Counter 메뉴 항목을 클릭하면 된다.



- Barracuda -