일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 트리의 지름 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 가장 긴 팰린드롬 파이썬
- 반도체 설계 파이썬
- 프로그래머스 등굣길
- 프로그래머스 베스트앨범
- 역사 파이썬
- 프로그래머스 가장 긴 팰린드롬
- 게임 개발 파이썬
- 백준 1043 거짓말 파이썬
- 베스트앨범 파이썬
- SQL SERVER MIGRATION
- 프로그래머스 여행경로
- 백준 1238 파티 파이썬
- 백준 2352 반도체 설계 파이썬
- 백준 1613 역사
- 순위 파이썬
- 프로그래머스 순위 파이썬
- 백준 1167 트리의 지름 파이썬
- 다리 만들기 파이썬
- SQL SERVER 장비교체
- 백준 11054.가장 긴 바이토닉 부분 수열
- 램프 파이썬
- 프로그래머스 순위
- 다중 컬럼 NOT IN
- SWEA
- 백준 1034 램프 파이썬
- 백준 1516 게임 개발
- 백준 2146 다리 만들기
- 등굣길 파이썬
- Today
- Total
공부, 기록
[AWS RDS SQL Server] 데이터 업데이트 작업 본문
여러 테이블들의 데이터를 업데이트 해야하는 작업이 있었습니다.
작업을 위해 테스트한 내용과 주요 모니터링으로 보았던 지표들 그리고 특이사항에 대하여 기록합니다.
작업 요구 내용
서버 스펙 최대 IOPS : 6,120
최대 처리량 : 약 170MB 평소 IOPS 평균 100 이하 (스파크성으로 1000까지 증가) 처리량 평균 5MB 이하 (백업 시간 제외, 스파크성으로 20MB까지 증가)
CPU : 평균 5% 이내 (백업 시간 30%)
목표
IOPS : 최대 4천 이하 유지
처리량 : 100MB 이하 유지
처리시간 : 최대 하루 이내 처리 이슈 없는 성능으로 최대한 빠르게 처리
주요 확인 항목
CPU
IO 관련 : READ, WRITE Latecny IOPS, Throughput
지연 관련 : DiskQueueDepth, Lock Waits/sec
미러링 관련 : Transaction/sec, SQL SERVER:Database Mirroring
etc) Cache Hit Ratio, PLE, Log Flushs/sec, Latch Waits/sec
SQL 서버의 락 에스컬레이션은 5000건 이상(문서의 내용이지만 명확하진 않음) 의 락이 걸릴 경우 에스컬레이션 하는 경우가 많습니다. 해당 서버의 메모리가 여유있는 점을 고려하여 Trace 1224 를 ON으로 설정하는 테스트를 진행해보았습니다. 작업간 Lock Manager의 메모리 변화량을 추적하였을 때 성능에 영향이 없을 것으로 판단되어 해당 옵션을 ON으로 변경하였습니다.
해당 표를 통해 1224 설정을 킨 경우 락 에스컬레이션이 발생하지 않은 것을 볼 수 있습니다.
아래 표는 작업 간의 적절한 IOPS와 시간을 계산하기 위한 업데이트 건수를 조정하는 테스트의 기록입니다.
여러 테스트를 바탕으로 아래의 순서로 작업을 처리하고 예상 시간을 산출하였습니다.
소규모 테이블 일괄 처리, 게임유저 1500건씩, TABLEA 10000건씩, TABLEB 5000건씩, 일반유저 500건씩, 일반유저 뒷번호 400건씩
테스트 별 소요 시간 (2회 실시)
일괄처리 1분내외
게임유저 1500건 40분 ,50분
TABLEA 1만건 40분, 40분
TABLEB 5천건 1시간35분, 1시간 25분
일반유저 500건 5시간 10분, 5시간 10분
일반유저 400건 2시간, 1시간40분
실제 작업
테스트와 비슷한 시간이 소요되었으며 서비스 운영에 이슈는 없었습니다.
특이사항
테스트 환경은 AG 환경이었고 실제 운영 환경은 미러링으로 구성되어 있었습니다.
1 미러링 트랜잭션 딜레이 현상 발생 (처리량에 따른 증가가 아닌 일시적인 증가)
2 순간적인 Latency 증가
스냅샷 생성 + 로그백업을 진행할 때 DB 미러링이 지연되는 것 확인
'공부 > DATABASE' 카테고리의 다른 글
[AWS Aurora PostgreSQL] 개념 공부 (0) | 2024.06.09 |
---|---|
[AWS RDS SQL Server] 인증서 변경 (0) | 2024.05.31 |
[SQL Server] Index Seek 에서 클러스터드 인덱스 조건이 주는 영향도 (0) | 2024.05.29 |
[SQL Server] Insert와 버퍼캐시 (0) | 2024.05.27 |
[RDS SQL Server] 인스턴스 타입 변경 (0) | 2024.05.21 |