[MSSQL] ERROR 10928 10929 Resource Governor 제한

반응형

MSSQL ERROR 10928 10929 Resource Governor 제한

MSSQL ERROR 10928 10929 Resource Governor 제한

MSSQL ERROR 10928 / 10929 Resource Governor 제한

1️⃣ 오류 개요

MSSQL ERROR 10928ERROR 10929는 주로 Azure SQL Database 또는 Azure SQL Managed Instance 환경에서 발생하는 대표적인 리소스 제한 오류입니다.

• ERROR 10928 → 세션/워커 스레드 제한 초과
• ERROR 10929 → 서버 리소스 제한으로 요청이 거절됨
• Resource Governor 정책에 의해 접속/쿼리가 제한될 때 발생

2️⃣ 주요 증상

  • 애플리케이션 또는 사용자가 데이터베이스에 접속 시 “리소스 제한” 메시지 출력
  • 대량 트래픽 혹은 connection pool 증가 시 접속 실패
  • Azure SQL의 서비스 구성 등급(DTU/CPU) 한계 도달
  • Managed Instance에서 동시 세션/worker thread 부족

3️⃣ 원인 분석

• Azure SQL은 서비스 계층(예: Basic, Standard, Premium)에 따라 동시 사용자/세션 수가 제한됨
• DTU 또는 vCore 구성 스펙 한계 도달로 CPU·메모리 부족
• 앱에서 connection pool 증가 또는 비효율적 쿼리 실행으로 세션 폭증
• Resource Governor에 의해 특정 workload가 제한되면서 거부 처리

4️⃣ 해결 방법

✔ 1) 서비스 계층(스펙) 상향

Azure SQL은 기본적으로 성능 티어에 따라 리소스 한계가 결정됩니다. 문제가 반복되면 vCore 또는 DTU 상향이 가장 확실한 해결책입니다.

✔ 2) Connection Pool 최적화

  • .NET / Java에서 max pool size 과도 설정 시 세션 폭증 가능 → 적정값 설정
  • 사용 후 connection이 적절히 close/release되는지 점검 필요

✔ 3) 쿼리 튜닝 및 인덱스 정비

느린 쿼리로 worker thread 장시간 점유 → 리소스 부족으로 이어짐

✔ 4) Resource Governor 정책 점검

SELECT * FROM sys.resource_governor_workload_groups;
SELECT * FROM sys.dm_resource_governor_workload_stats;

✔ 5) Azure Portal에서 모니터링

  • CPU % / DTU % / memory % 확인
  • 세션 수, worker thread 수, 쿼리 대기 시간 분석

5️⃣ 예방 방안

  • 주기적 성능 모니터링 및 알람 설정(Azure Monitor)
  • 트래픽 증가 대비 성능 티어 예측/확보
  • DB connection 재사용 패턴 점검
  • 비효율 쿼리 조기 식별 및 정비
반응형