
평균 CPU는 여유로운데, 커밋은 왜 느릴까?
두줄요약
평균 지표에 가려진 Oracle 커밋 지연을 CPU별 NIC 인터럽트와 LGWR 경합으로 분석했습니다. NIC 슬롯과 본딩 방식을 바꿔 인터럽트를 분산하고 CPU·SQL 성능을 개선했습니다.
문제 상황
- Oracle DB 커밋 시
log file sync대기 0.1초 이상 반복 - 평균 CPU·스토리지·OS·네트워크 지표 정상 범위 속 API 응답 지연
원인 분석
- LGWR가 특정 CPU에서 실행될 때 NIC 인터럽트와 경합하는 현상
- Active-Standby 본딩과 NIC 슬롯 배치로 Oracle RAC 인터커넥트 인터럽트가 단일 NUMA 소켓에 집중
/proc/interrupts차분과pidstat기반 CPU별 인터럽트·LGWR 실행 위치 추적
해결 방법
- 인터커넥트 NIC를 서로 다른 소켓 연결 슬롯으로 이동
- 본딩을 Active-Standby에서 Active-Active로 전환해 인터럽트를 두 소켓으로 분산
- 재기동마다 필요한 LGWR CPU 고정 대신 하드웨어 배치 기반 개선 선택
성능/운영 포인트
- 고인터럽트 처리 물리 코어 수 8개에서 15개로 증가, 인터럽트 집중도 Gini 계수 0.80에서 0.67로 감소
- 다른 RAC의 개장 초기 10분 평균 CPU 사용률 36.6%에서 17.4%로 감소
- 0.1초 이상
log file sync대기 대부분 개선, 주요 업무 SQL 수행시간 10.5~30.8% 감소
