이전 글을 포스팅 하고 보니 의외로 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 -

 

저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들


최근(2015.4)에 HammerOra에서 HammerDB 로 이름이 변경되었고, Oracle TimesTen, Redis 등도 지원하는 등, 꾸준한 변화를 보이고 있네요.



HammerOra('해머오라' 라고 읽자. 의미는 'Hitting Oracle with a Hammer'라고 한다) 는 시중에서 별 다른 제약 없이 사용해 볼 수 있는 거의 유일한 Open Source DBMS 성능 측정 툴이고, TPC-C, TPC-H 등 요즘 주로 사용하는 성능측정 방법을 구현해 놓은 것으로

http://hammerora.sourceforge.net 에서 Linux/MS-Windows(X86/X64) 용으로 각각 빌드된 패키지를 다운로드 받아서 사용할 수 있다.


더구나 각 플랫폼 별로 간단 설치법과 심지어 해당 DBMS를 직접 설치할 수 있는 상세한 매뉴얼을 제공하고 있으니 초심자에게 많은 도움이 될 듯 하다. 적용 가능한 DBMS는, 2.11 버전부터는 기존의 Oracle, MS SqlServer, MySQL 뿐 아니라 PostgreSQL 까지도 지원 가능하도록 업데이트 되어 있다. HammerOra의 개발과 업데이트는 sourceora(sourceora.com)에서 제공하며, 2010년부터 sourceforge를 통해서 업데이트가 이루어지고 있다 (Pro Oracle RAC on Linux 책에서도 잠깐 언급된 적이 있었다).


프로그램의 설치 과정 자체는 다운로드후 설치-프로그램-실행이라는 단순한 수순을 따르지만, 실제로는 측정 대상이 되는 DBMS에 접속이 가능하도록 Oracle OCI 또는 ODBC 드라이버를 별도로 설치해 주어야 하므로, 제공되는 설치매뉴얼을 꼼꼼하게 읽고 진행해야 한다. 실제로 MS Sqlserver 를 대상으로 테스트를 진행하려고 무심코 테스트를 시도하였으나, DB 접속 실패가 발생해서, 곰곰 생각해보니 HammerOra가 SqlServer에 접속하는 방식이 ODBC 가 아닌 Native SQLserver Client를 사용하는데, 그에 맞는 적절한 Client 를 설치해 주지 않아서 접속 자체가 되지 않는 것이었다.


HammerOra 설치를 Windows 2008 서버에, 테스트 대상이 MS Sqlserver 2008 이라면 아래의 사이트에서 클라이언트를 적절히 선택해서 HammerOra 서버장비에 설치해 주어야 한다.


http://www.microsoft.com/ko-kr/download/details.aspx?id=8824

Microsoft SQL Server 2008 Native Client 항목에서 X86/X64/IA64 패키지 중에서 선택


단, 상식적이기는 하지만, 주의해야 할 사항은 HammerOra 를 설치해서 사용할 서버 자체의 사양이 일반적인 사양보다 충분히 좋아야 한다는 점에 유의한다. 즉, 부하를 발생시키는 장비 자체가 저사양/저성능이면 원하는 충분한 부하가 측정 대상 서버로 적절하게 생성/분배/처리가 되지 않을 것이기 때문이다.


<참고 1>

TPC는 Transaction Processing Performance Council(www.tpc.org) 이라는 국제 공인 단체에서 시스템의 성능을 측정하는 객관적인 기준을 방법론 형태로 제시한 것이다. 그 중에서 TPC-C는 tpmC 라는 측정 결과값을 도출해 주며, 이는 "분당 처리건수" 라는 의미를 지닌다.


여기서 주의하여야 할 것은 이미 많은 문헌이나 블로그들에서 TPC 방법론의 허와 실에 대해 분석한 부분을 주의 깊게 읽어 보아야 하며, TPC 측정을 통해 나타나는 결과가 시스템이나 서버의 성능을 판단하는 절대적인 기준은 될 수 없다라는 사실이다.


단적으로 말하자면, 위에서 다룬 HammerOra 를 통한 TPC-C 측정 방법은 "5개의 트랜잭션 유형 / 9개의 테이블 / 테이블당 10~15개의 컬럼" 만으로 구성된 주문처리(OLTP) 업무를 기준으로 만들어진 것이지만, 실제 각 기업의 업무용 Application의 경우 수백개의 테이블, 테이블당 수십/백개의 컬럼과 다양한 비즈니스 로직이 복잡하게 적용되어 결과가 나오게 되므로, TPC 측정 결과가 좋다고 해서 실제 그 회사의 업무를 적용했을 때의 최고의 성능이 발휘되리라는 기대는 하지 않는 것이 좋으나, 모든 경우에 해당되는 절대적인 측정 도구나 방법이 없기 때문에 "그러리라 기대"하면서 참고 자료로 사용하여야 한다는 것이 본 참고 부분의 골자 되겠다.


<참고 2>

TPC에서 제안하는 성능측정 방법 중 현재 주로 채택/적용되는 방법은 아래와 같다.

  • TPC-C(측정 단위: tpmC)

  OLTP환경의 DBMS 트랜잭션 성능을 측정하기 위한 방법론, 전자상거래 비즈니스 로직

  •  TPC-E(측정 단위: tpsE)

  보다 향상된 트랜잭션 처리 성능층 위한 방법론, 증권거래 비즈니스 로직

  •  TPC-H(측정단위: qphH)

  DSS(Decision Support System)의 성능 측정 방법론, 병렬 update와 복잡도 높은 쿼리의 동시 수행에 관여되는 업무

  •  TPC-DS

  보다 향상된 DSS(Decision Support System)의 성능 측정 방법론, 주로 DSS, OLAP, data mining 업무

  •  TPC-A/B/D/R/W/App

  더 이상 사용하지 않는(Obsolete or Retired) 방법론들


<참고 3>

비즈니스 영역에 따라 웹서버, 웹어플리케이션서버 등의 성능 측정시에는 SPEC(Standard Performance Evaluation Corporation, 

http://www.spec.org)에서 제시하는 SPEC CPU2006, SPECweb99_SSL 등의 방법을 적용하기도 한다.



[관련 글]

2012/09/14 - [Technical/DBMS] - HammerOra로 DBMS 성능 측정하기(TPC-C) -2



- Barracuda -


저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들