2. Preprocess

Replay 사전 준비사항으로서, Preprocess모드는 replay를 위해 capture된 파일들의 전처리를 진행하는 모드 입니다. 해당 모드 사용을 위해 preprocess.properties 파일을 작성합니다.

preprocess.properties 파일 복사

  • $> cd [tbwrc 실행 스크립트 파일 위치]

  • $> cp ./properties/template/preprocess.properties.eg ./properties/preprocess.properties

다음은 preprocess.properties parameter 리스트 입니다.

parameter
설명
기본값

CAPTURE_DIR

Capture file이 존재하는 디렉토리 (Capture 단계에서 Capture한 File들이 저장되어 있는 Directory를 명시)

$TB_HOME/capture_files 유저가 사전에 ${TB_HOME} 환경 변수 설정 필요

REPLAY_DIR

Preprocess 결과 파일들이 저장될 디렉토리 (디렉토리를 미리 생성하지 않아도 무방)

$TB_HOME//replay_dir 유저가 사전에 ${TB_HOME} 환경 변수 설정 필요

OVERWRITE

REPLAY_DIR이 빈 폴더가 아닐 경우, REPLAY_DIR을 정리할지 여부

false

CONNECT_TIME_SCALE

Capture 시작 시간 대비 Capture된 세션들의 최초 부하 시작 시간간격을 리플레이 시에 Capture 당시와 얼마나 동일하게 재현할 지에 대한 파라미터 (단위: %)

100

THINK_TIME_SCALE

하나의 세션 안에서 하나의 Capture 부하의 종료 시간과 바로 다음 capture 부하의 시작 시간까지의 휴지시간 스케일을 캡쳐 당시와 얼마나 동일하게 재현할 지에 대한 파라미터 (단위: %)

100

LOG_DIR

PREPROCESS 과정에서 발생하는 로그를 저장할 디렉토리

./log

LOG_LEVEL

메시지의 심각도에 따라 로그에 기록될 메시지 선택 제어 유효 값 OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE,ALL

INFO

[예] PREPROCESS 모드 실행

$ sh tbwrc.sh PREPROCESS=YES
try to apply properties [./properties/preprocess.properties]

PREPROCESS=true
OVERWRITE=true
CAPTURE_DIR=/home/tibero6/capture_files4
REPLAY_DIR=/home/tibero6/replay_dir
CONNECT_TIME_SCALE=20
THINK_TIME_SCALE=20
LOG_DIR=./log/properties
LOG_LEVEL=INFO
.
.
.
remain[0]
LOB [0] rows
TEMP_LOB [0] rows
executeBatch[10240]
remain[3127]
ROWID [699447] rows
REF_CSR_ID [0] rows
remain [103]
session_list_t [103] rows
tbwrc [PREPROCESS] finish

PREPROCESS 모드가 성공적으로 끝났으면 properties에서 설정한 REPLAY_DIR에 아래와 같은 결과 파일들이 생성됩니다. (Capture file size와 거의 동일)

$ pwd
/home/tibero6/replay_dir
$ ls
pp_info  replay_info  result_list  session_list  sys_id  tibero_0  tsn_order_list

Calibration (권장 사항)

Calibration 모드는 권장사항으로서 Preprocess 모드로 측정한 최대 동시세션수를 이용, 효율적인 replay를 하기위해 필요한 최소한의 replay client 프로세스 개수를 추천하는 모드 입니다.

해당 모드 사용을 위해 calibrate.properties 파일을 작성합니다.

calibrate.properties 파일 복사

  • $> cd [tbwrc 실행 스크립트 파일 위치]

  • $> cp ./properties/template/calibrate.properties.eg ./properties/calibrate.properties

다음은 calibrate.properties parameter 리스트 입니다.

parameter
설명
기본값

REPLAY_DIR

Preprocess 결과 파일들이 저장된 디렉토리

$TB_HOME/replay_dir 유저가 사전에 ${TB_HOME} 환경 변수 설정 필요

PROCESSES_PER_CPU

CALIBARTE 연산 과정에서 리플레이 머신 환경 CPU 하나당 최대 replay client process의 개수를 가정하기 위해 지정하는 파라미터

4

THREADS_PER_PROCESS

CALIBARTE 연산 과정에서 Assumption으로 사용할 replay client process 1 개 당 리플레이 worker session thread의 개수를 지정하는 파라미터

50

LOG_DIR

Calibrate 과정에서 발생하는 로그를 저장할 디렉토리

./log

LOG_LEVEL

메시지의 심각도에 따라 로그에 기록될 메시지 선택 제어 유효 값 OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL

INFO

[예] CALIBRATION 모드 실행

$ sh tbwrc.sh calibrate=yes 
try to apply properties [./properties/calibrate.properties]

CALIBRATE=true
PROCESSES_PER_CPU=4
THREADS_PER_PROCESS=100
LOG_DIR=./log/calibrate
LOG_LEVEL=INFO
.
.
.
tbwrc [CALIBRATE] start

Recommendation:
Consider using at least 2 client(s) divieded among 1 CPU(s)

Characteristics:
- max concurrency sessions: 101 sessions
- total number of sessions: 103

Assumption:
CONNECT_TIME_SCALE : 20
THINK_TIME_SCALE : 20
1 client process per 100 concurrent threads
4 client processes per CPU
tbwrc [CALIBRATE] finish

위 예시에서 총 세션수가 103이고 최대 동시 접속 세션이 101이므로, replay client 프로세스를 최소 2개 이상 사용하도록 권장하고 있습니다.

Last updated