본문으로 건너뛰기

1.3 Baseline과 실험 설계

Baseline은 “평소 평균” 하나가 아니라 workload 조건별 정상 범위입니다. 평일 peak, 야간 batch, backup 시간대는 서로 다른 기준을 가져야 합니다.

비교 가능한 snapshot

  • 같은 길이의 시간 window를 사용합니다.
  • traffic, data size, cache warm 여부를 기록합니다.
  • OS, kernel, PostgreSQL 설정과 배포 version을 함께 남깁니다.
  • 평균과 percentile, counter의 변화율을 구분합니다.

Counter는 두 시점의 차이나 rate로 봅니다. /proc/stat, network byte, PostgreSQL transaction counter의 절대값은 재시작 이후 누적값이라 현재 부하를 직접 말하지 않습니다.

한 번에 하나씩 바꾸기

성능 실험은 다음 순서로 진행합니다.

예를 들어 work_mem을 올릴 때 query latency만 기록하면 memory pressure를 놓칩니다. 실행 계획, temporary file, RSS, cgroup memory.events, concurrency를 함께 측정합니다.

실험 기록 template

가설:
고정 조건:
변경값:
성공 지표:
안전 지표:
관찰 시간:
rollback 기준:
결과:

Cache가 있는 시스템은 첫 실행과 반복 실행을 분리합니다. 파일 page cache를 무작정 drop하는 실험은 다른 workload에 영향을 주므로 공유 host에서 실행하지 않습니다.