• 목적
    • 성능부하테스트시 Checkpoint에 의한 IO 과다점유로 인한 SlowQuery 증가 확인
    • 적정수준의 Checkpoint IO 임계값 파악 및 설정을 통한 대규모 트래픽 유입시 안정적 환경 제공
  • 테스트 환경 
    • 서버 및 트래픽 유입 패턴
      • 32Core 64GB Mem
      • 트래픽이 평소 높지 않으며 간혈적 대량 트래픽 발생 가정 
    •  더미데이터
      • 50G / Seq 컬럼 클러스터 인덱스 구성
    • Ostress 부하 (-n100 -r100000)
      • 9:1 Insert/Update 호출
        • Insert : @MaxSeq+(abs(Checksum(newid())) % @MaxSeq)
          • Identity (순차) 증가시 latch 지연 영향 발생 가능성을 줄이기 위함
        •  Update : @MaxSeq-(abs(Checksum(newid())) % @MaxSeq)
          • 캐시내 재조회가 아닌 IO를 발생하기 위함
  • 테스트

Perfmon 수집 지표
테스트 내용 (일부)

    • 테스트 결과
      • Checkpoint IO 설정 
        • IO 제한을 통한 DISK 병목현상이 발생하지 않아 안정적으로 elapsed time이 나옴
        • 라이브 반영시 일/주/월/년단위 Checkpoint, Read/Write Byte와 DISK 성능 ( throughput, SAS 미러링 등)을 고려하여 적절 IO 제한 값 산정
      • Indirect 설정
        • 대량 데이터변경으로 인한 Background writer page의 IO 스트림이 지속 발생한 영향으로 트랜잭션 처리속도가 전체적으로 Driect 대비 하락으로 보임
          • latch 대기를 확인하였어야했는데 누락되었다 (메모리내 Dirtypage 관리자의 동작에 의해..?)
        • Indriect Checkpoint는 Checkpoint IO영향이 낮음

 

 

 

+ Recent posts