목록 보기
평균 CPU는 여유로운데, 커밋은 왜 느릴까?
백엔드

평균 CPU는 여유로운데, 커밋은 왜 느릴까?

토스
토스
2026년 10월 19일

두줄요약

평균 지표에 가려진 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% 감소

토스 계열사 채용152건

채용 사이트에서 전체 보기

다음 읽기

#NUMA 주제를 이어서 읽기

CPU 뼛속까지 써먹고, Milvus 사이징 기준을 만들기까지

Milvus 벡터 검색의 품질·처리량 기준으로 HNSW_SQ8을 선택하고 NUMA 배치를 최적화했습니다. 같은 자원에서 QPS를 41% 높이고 검색 조건 기반 서버 사이징 기준을 만들었습니다.

토스
토스
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...