Skip to content

T7 — 워크로드 프로파일 정의서 (템플릿) ​

16화에서 제정했다. 부하를 직접 만들어서 잴 때 쓴다. T5 시스템 성능 리포트의 2번 칸에는 이 문서의 ID가 들어간다. ID가 없는 T5는 무효다. 연습 DB의 AWR은 운영을 찍은 사진이 아니라 내가 만든 부하를 찍은 사진이다. 리포트에 나오는 순위와 비율, 대기는 모두 이 문서에 적은 인자에 따라 정해진다.


왜 이 문서가 있는가 ​

15화에서 만든 부하 발생기를 기본값(THINK_MS 200 · 2세션)으로 돌리면 연습 DB는 거의 쉬고 있다. 16화에서는 같은 발생기에 인자만 바꿔 '붐비는 오전'을 만들었다.

부하 발생기 · STEADY15화 시운전16화 구간 A의 런
인자SESSIONS=2 THINK_MS=200 MINUTES=3SESSIONS=3 THINK_MS=0 MINUTES=12
세션당 실행 수873 · 878148,186 · 147,428 · 145,925
발사기가 찍은 활성 세션 샘플 (ASH)92,159

같은 발생기도 인자 몇 개만 바꾸면 다른 시스템이 된다. 리포트에서 1위로 나오는 SQL도 가중치(WEIGHTS)가 정한다. 더 고약한 경우는 부하 발생기의 SQL이 운영 SQL과 한 글자라도 다를 때다. 16화에서 부하 발생기의 Q2는 운영 Q2 rev01에서 스칼라 서브쿼리(지역명)를 뺀 판이었는데, 그 한 줄 때문에 옵티마이저가 다른 계획(VW_GBC, 먼저 묶기)을 골랐다(9번 칸 참고).

부하를 만든 사람이 그 부하가 어떻게 생겼는지 적어 두지 않으면, 그 리포트로는 아무것도 증명할 수 없다.


작성 규칙 ​

명령을 그대로 적는다발사기 명령 한 줄을 전부 적는다(기본값으로 둔 인자까지). 같은 명령이면 같은 런이 나와야 하므로 씨앗까지 적는다
생각 시간을 비우지 않는다THINK_MS가 0이면 "0: 이유"를 적는다(예: CPU 2개를 넘치게 해서 줄 서는 모습을 보이려고)
세션 수는 CPU와 함께 정한다Free는 cpu_count가 2다. 세션은 2~4개로 둔다(16화: 3세션에 생각 시간 0이면 평균 활성 세션 3.12, CPU를 기다린 몫 25%)
구간은 런 기준 시각으로 정한다"+2분 ~ +11분"처럼 적는다. 스냅샷 번호는 런마다 달라지므로 적지 않는다. 스크립트가 런의 시작 시각과 끝 시각으로 스냅샷을 찾는다
운영과 다른 점을 적는다9번 칸에 적는다. 비어 있으면 반려한다
정리까지가 프로파일이다8번 칸에 끝난 뒤 무엇을 되돌렸는지 적는다

양식 ​

┌──────────────────────────────────────────────────────────────────────────────┐
│ T7 워크로드 프로파일 — ID: WP-____                                             │
├──────────────────────────────────────────────────────────────────────────────┤
│ 작성자 : ____________   작성일 : __________   쓰는 리포트 : T5-___            │
└──────────────────────────────────────────────────────────────────────────────┘
#항목내용
1프로파일 ID · 목적무엇을 흉내 내는가(예: 월요일 오전 · 보정 배치가 도는 시간)
2대상 스키마 · 데이터 · 통계 상태테이블 건수 · 원본 지문(V_LD_FINGERPRINT) · 히스토그램 · 마지막 통계 수집
3세션 구성동시 세션 수 · 조각 가중치(WEIGHTS) · 온라인 : 배치 : 리포트 비율 · 함께 얹는 배치
4시간 구성데우기 · 측정 구간 · 꼬리 · THINK_MS · 런 길이
5입력값 분포씨앗(SEED) · 바인드 값을 고르는 방법(예: Q1은 36개월 중 하나, Q4는 첫 페이지 30% · 다음 60% · 날짜 10%)
6도구 · 명령발사기 명령 한 줄 · 스냅샷 스크립트 · 사건 스크립트
7성공 판정기동 전 V$RESOURCE_LIMIT(processes · sessions) 여유 · 에러 0 · 원본 지문 앞 = 뒤 · 끝난 뒤 남은 세션 0 · 분당 실행 수가 고름(정상 상태)
8정리 절차세션 정지 · 작업 테이블 · 임시 객체 · 통계 원복 · 스냅샷 간격과 보존 기간 원복 · 남긴 것
9【16화】 운영과 다른 점 ★문장이 다른 조각 · 빈도가 다른 조각 · 데이터 규모 · CPU · 그래서 리포트의 어느 칸을 믿지 말아야 하는가
10이 프로파일로 낸 리포트T5 번호 · 구간 · 날짜

금지어 ​

"부하를 걸어 봤더니": 어떤 부하인지(ID)부터 밝힌다. 세션 수와 생각 시간, 가중치, 씨앗이 없으면 아무도 같은 부하를 다시 만들 수 없다. "운영과 비슷한 부하로": 무엇이 비슷하고 무엇이 다른지 9번 칸에 적기 전에는 쓰지 않는다.


자매 문서

개정 이력: 16화에 제정했다(1호 = WP-16A · WP-16B · WP-16H). 17화 2호는 WP-17H와 WP-17S다. WP-17H는 WP-16H를 재현한 프로파일로, 같은 인자로 같은 모양이 나오는지를 7번 '성공 판정'에 넣었다.

18화 3호는 WP-18R(리소스 매니저 네 판)과 WP-18O / WP-18N(옛 판 셋과 지금 판, awrddrpt)이다. 9번 칸에 '3월이 아니라 같은 날', '바꿀 수 있는 조각은 셋뿐'을 적었다. 부하 발생기의 Q2는 바꾸지 않기로 정했다(16·17화 런 재현, 18화 2_파고들기 §6.5).