infatuation

TPC-C benchmark 결과치 읽는 법 본문

Study/FlashMemory&DB

TPC-C benchmark 결과치 읽는 법

화령 2009. 4. 24. 21:26

벤치마크의 발전 과정에서 살펴보았던 TPC-A나 TPC-B는 더 이상 사용하지 않으며 현재 사용하는 벤치마크는 TPC-C, TPC-H, TPC-App 등 세 가지다.

TPC-C는 1990년에 차세대 OLTP 벤치마크 개발을 시작해 2년이란 개발기간을 통해 나온 결과물로, 다양한 하드웨어와 소프트웨어 구성상에서 OLTP 성능을 비교하기 위한 척도가 되어 왔다. 현재 버전은 5.5이며 TPC-A에 비해 다양한 트랜잭션 타입과 더 복잡한 테이블, 전체적인 실행 구조 등이 다르다. TPC-C 명세서를 살펴보면 TPC-C는 데이터베이스에서 터미널 오퍼레이터들이 트랜잭션을 수행하는 환경을 시뮬레이션했으며 주문-입력(Order-Entry) 환경의 주요활동을 중심으로 모델링했다. 여기에는 주문을 입력하고 주문상품을 배달하고 지불하며 주문상태를 확인하고 재고현황을 모니터링하는 5개의 트랜잭션으로 구성된다. 그러나 여기서 기억할 것은 TPC-C가 주문-입력 시스템을 잘 구현하고자 하는 것이 아니라 제품이나 서비스를 관리하고 판매, 배포하는 산업군 자체를 대표하고자 하는 의도라는 것이다.

TPC-C는 <그림 2>와 같이 9개의 테이블과 이러한 테이블을 수행하는 5개의 트랜잭션으로 구성된다. 이들 5개의 트랜잭션 중 재고 수준을 제외한 나머지 4개의 90%가 응답속도 5초 이하라면 재고 수준 트랜잭션의 경우에는 20초 이내여야 한다. 그 밖에도 명세서에는 테이블에 들어갈 데이터의 분포, 각 트랜잭션이 가져야할 특성, 시스템 구성 등에 대하여 설명을 하고 있다. 이러한 TPC-C의 벤치마크 테스트 내용을 기억하면서 TPC-C 벤치마크를 테스트한 각 업체들의 결과를 살펴보자.

<그림 1> TPC-C의 목표 시스템



<그림 2> TPC-C 테이블
TPC-C 벤치마크 결과를 읽는 방법은 크게 두 가지다.

하나는 성능 기준으로 상위 10위까지 조회(Top Ten TPC-C Results by Performance)하는 것이고
다른 하나는 성능 대비 가격 기준으로 상위 10위까지 조회(Top Ten TPC-C Results by Price/Perfor mance)하는 것이다.

먼저 성능으로 <화면 2>와 같이 상위 10위까지의 결과(www.tpc.org/tpcc/results/tpcc_perf_results.asp)를 보도록 하자.
2005년 12월 현재 성능이 가장 좋은 구성은 ‘IBM eServer p5 595 64p’ 하드웨어에 ‘IBM DB2 UDB 8.2 DBMS’임을 알 수 있다. 맨 마지막 컬럼의 클러스터는 여러 대의 DB 서버를 연결하는 클러스터링 방식은 사용하지 않았다는 것이다. 더 자세히 살펴보면 tpmC라는 컬럼과 Price/tpmC 컬럼이 벤치마크의 순위를 좌우하는 내용이다. 먼저 성능 기준에서 1위를 차지한 ‘IBM eServer p5 595 64p’ + ‘IBM Db2 UDB 8.2 DBMS’의 구성은 tpmC가 3,210,540으로 나와 있다. 이제 앞서 살펴보았던 TPC-C의 명세의 내용을 기억하면서 파악해야 한다. TPC-C에서 tpmC 값은 시스템이 TPC-C에서 정의된 트랜잭션 중 4개, 즉 지불, 배송, 주문 상태, 재고 수준 트랜잭션을 수행하면서 1분에 처리하는 주문 트랜잭션의 수를 나타낸다. 즉 tpmC가 3,210,540이라 하면 OLTP 환경에서 기본적인 관련 트랜잭션을 처리하면서 분당 300만개 정도의 주문 트랜잭션을 처리하는 것으로 생각하면 된다.

그렇다면 Price/tpmC의 의미는 무엇일까. 1분당 300만개 정도의 트랜잭션을 처리한다는 것을 알았는데 그렇다면 이러한 성능을 내기 위해 시스템에 든 비용과의 관계는 어떻게 되는 것일까. 바로 이 관계를 나타내 주는 것이 Price/tpmC다. 전체 벤치마크 시스템을 구성하기 위한 총 비용에서 tpmC를 나눈 것이다. 이 값이 작을수록 각 트랜잭션 1개당 저렴한 구성으로 처리할 수 있다는 것을 의미한다. 성능에서 1위를 차지한 구성을 보면 5.07달러로 나와 있으므로, 2위를 차지한 ‘IBM eServer p5 595 32p’ + ‘Oracle Database 10g Enterprise Edition’의 구성보다는 조금 떨어지는 것을 알 수 있다. 그럼 1위를 차지한 시스템을 구성하려면 얼마나 들까. 3,210,540 × 5.07달러 = 16,277,437.8달러. 원화로 환산하면 160억원 정도가 나온다. 2위를 한 시스템은 80억원 정도다. 여기서 비용은 단순히 서버 비용과 DBMS 비용만이 아니라 터미널, 통신장비, 백업장비, 3년간 유지 보수 금액을 모두 포함한 것으로 이러한 모든 가능한 비용을 모두 포함시킴으로써 업체가 일부 비용을 처음에는 낮추고 유지보수 비용을 높게 한다든가 하는 식의 편법을 사용하지 못하게 했다.

1위와 2위의 tpmC의 차이가 2배 정도가 나는 원인은 대충 봐도 예측이 가능하다. 이는 하드웨어의 영향으로 1위의 IBM Server p5 595 64p와 2위의 IBM eServer p5 595 32p의 이름에서 보듯이 맨 마지막이 프로세서의 개수를 의미하는 것이다. 따라서 1위는 CPU가 64개, 2위는 32개이며, 이로 인해 처리 트랜잭션의 수가 2배씩 차이가 나고 있다. 따라서 이것을 보면, IBM DB2 UDB 8.2와 Oracle 10g Enterprise Edition의 성능 차이는 크지 않으며 이 경우에는 개별 기업이 처리해야 할 트랜잭션의 수에 따라 두 시스템 구성 중에 하나를 선택하면 된다.

이제 성능 대비 가격 기준으로 상위 10위까지 조회(www.tpc.org /tpcc/results/tpcc_price_perf_results.asp)를 선택하여 벤치마크 결과를 보자. <화면 3>을 보면 <화면 2>와 전혀 다른 하드웨어와 DBMS의 조합이 나오는 것을 알 수 있다. tpmC는 38.622로 낮지만 Price/tpmC는 0.99달러로 무척 낮다. 이 시스템의 총 비용은 38.622 × 0.99달러 = 38,235.78달러, 즉 원화로 3800만원 정도가 된다. 즉 처리량이 많지 않은 경우에는 이러한 구성을 사용하는 것이 가장 경제적이라는 의미이다.

이러한 두 가지의 결과를 통해 비용보다는 성능이 가장 중요할 경우에는 tpmC에 가중치를 두고 시스템을 선택하면 되고 적절한 성능에 가격이 저렴한 시스템을 찾는 경우라면 Price/tpmC에 더 높은 비중을 두고 시스템을 선택하면 된다. 가장 이상적인 시스템은 tpmC가 가장 높으면서 Price/tpmC가 가장 낮은 시스템이 될 것이다. 그러나 일반적으로는 예산과 처리량을 예측해 시스템을 구성하므로 예산과 처리량 범위로 조회한 뒤 그 범위에 들어가는 시스템들을 면밀히 조사하면 된다. 벤치마크 결과 리스트의 각 항목을 클릭하고 들어가면 각 결과에 대한 FDR을 볼 수가 있으며 벤치마크 시스템을 구성하기 위한 각 구성요소의 가격까지도 상세하게 나와 있다. 추후 구매하고자 하는 시스템을 선정하게 되면 FDR에 나와 있는 가격을 토대로 가격을 협상할 때도 활용할 수 있다.

'Study > FlashMemory&DB' 카테고리의 다른 글

PLD(Programmable Logic Device)  (0) 2009.06.08
객체 기반 데이터베이스  (0) 2009.05.14
Dbt2 Benchmark 설치  (21) 2009.03.24
DB 응용특강 실습 #2  (2) 2008.09.28