본문 바로가기

Technical/DBMS

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


최근(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 -