출처: http://e-mukko.tistory.com/2
시스템을 구성하는 하드웨어의 적정한 성능을 보장하는 일은 무척이나 어려운 일이다. 특히나 우리나라에서는 자신이 관리하는 시스템에 몇명의 사용자가, 얼마나 자주, 얼마나 열심히 사용하는지에 대해 별로 관심이 없다. (뭐 어쩌면 내가 일하고 있는 이쪽 분야에서만 그런 것인지도 모르지만)
이렇게 기초 조사조차 안되어 있는 시스템을 파악하고 설계하는 일은 건물의 터파기를 하면서 밑에 뭐가 있는지도 제대로 모르고 파는 경우랑 비슷하다고 할 수 있을까?
뭐 그렇다고 해서 안 할 수는 없는 노릇인데다가, 그럭저럭 참조할만한 것도 있으니 한번 보도록 하자...
용 량산정에 가장 많이 참조하는 모델이 TPC(Transaction Processing Performance Council)에서 제공하는 벤치마킹 표일 것이다. 소위 우리가 말하는 tpmC(Transaction Per Minute type C)라는 것은 이 TPC에서 발표하는 TPC-C Type의 트랜잭션을 말하는 것이다. 그렇다면 tpmC의 정확한 정의를 한번쯤 확인해 보는 것이 나중에 직접 산정하는 용량과 얼마나 많은 괴리를 가지고 있는지 감이라도 잡을 수 있지 않을까????
tpmC의 시작은 전자상거래에서 발생하는 비지니스 모델을 기준으로 만들어진 것이라는 것쯤은 그냥 상식으로 알아두자..
1. tpmC 계산하는 방법
하드웨어의 tpmC를 측정하기 위해서는 아래와 같은 5가지 종류의 비지니스 트랜잭션을 각 비율대로 동시에 발생시킨 후 Steady State 에서 분당 처리된 New-Order 트랜잭션 건수를 계산하여 이를 tpmC로 계산한다.
구분 발생비율 (최소값)
New-Order N/A
Payment 43%
Order-Status 4%
Delivery 4%
Stock-Level 4%
즉, 어떤 하드웨어가 100tpmC의 성능을 공인받았다면, 이는 1분에
New-Order 비지니스 트랜잭션 100건
Payment 비지니스 트랜잭션 96건
Order-Status 비지니스 트랜잭션 9건
Delivery 비지니스 트랜잭션 9건
Stock-Level 비지니스 트랜잭션 9건
등 총 222건을 처리했다는 의미이다.
이때, 위와 같은 5가지 종류의 트랜잭션을 1가지 종류의 트랜잭션으로 환산한다면 아래와 같은 특성을 지닌 트랜잭션이 된다.
100tpmC 기준,
트랜잭션 유형 빈도수 Read Update Insert Delete
--------------------------------------------------------
New-Order 100 23 11 12 -
Payment 96 3 3 1 -
Order-Status 9 12 - - -
Delivery 9 110 110 - 10
Stock-Level 9 401 - - -
--------------------------------------------------------
통합 트랜잭션 7236 2364 1296 89
따라서 하드웨어 용량산정을 하고자 하는 응용시스템의 총 Read, Update, Insert, Delete수가 만일 각각 7236, 2364, 1296, 89건 이라면, 이 응용시스템을 위해 필요한 하드웨어는 100 tpmC의 성능을 보유하면 된다는 의미가 된다.
*주) 위의 내용에는 각각의 트랜잭션이 엑세스하는 DB에 대한 정보가 표시되어 있지 않으므로, 위와 같은 방식으로 용량산정하는 것은 근사치를 구하는 것으로만 활용해야함
2. 비지니스 트랜잭션의 세부 특성
TPC에서 구상한 TPC-C 타입의 트랜잭션들은 일반 소매상을 기준으로 실제 소매 업무를 수행하기 위해 필요한 모든 트랜잭션들을 모델화한 것이다.
가. New-Order 비지니스 트랜잭션
- 고객이 새로운 주문을 요청했을 때 이에 대한 처리를 수행하는 비지니스 트랜잭션임
- 특성
mid-weight, read-write transaction with a high frequency, response time = 5초 이내
==> Typical On-line Database Activity
- 1건당 수행 동작 (평균)
Read : 23
Update : 11
Insert : 12
Delete : 0
나. Payment 비지니스 트랜잭션
- 고객이 주문한 내용에 대하여 비용 지불을 하였을 때 이에 대한 처리를 수행하는 비지니스 트랜잭션임
- 특성
light-weight, read-write transaction with a high frequency,
response time = 5초 이내, 일부 non-primary key access 존재
- 1건당 수행 동작 (평균)
Read : 3
Update : 3
Insert : 1
Delete : 0
다. Order-Status 비지니스 트랜잭션
- 고객의 주문이 어떻게 처리되고 있는지 상태 확인을 처리하는 비지니스 트랜잭션임
- 특성
mid-weight, read-only transaction with a low frequency,
response time = 5초 이내, 일부 non-primary key access 존재
- 1건당 수행 동작 (평균)
Read : 12
Update : 0
Insert : 0
Delete : 0
라. Delivery 비지니스 트랜잭션
- 고객의 주문 사항에 대하여 일괄 처리를 수행하는 비지니스 트랜잭션임
- 특성
batch process, read-write transaction with a low frequency, response time = 5초 이내
- 1건당 수행 동작 (평균)
Read : 110
Update : 110
Insert : 0
Delete : 10
마. Stock-Level 비지니스 트랜잭션
- 전체 보유 제품에 대한 재고 상태를 체크하여 적정 재고 수준에
미달하는 제품을 확인하는 비지니스 트랜잭션임
- 특성
heavy-weight, read-only transaction with a low frequency,
response time = 20초 이내
- 1건당 수행 동작 (최대 평균)
Read : 401
Update : 0
Insert : 0
Delete : 0