RDS for SQL Server에서 리소스 관리자(Resource Governor) 구성 모범 사례
RDS for SQL Server에서 리소스 관리자(Resource Governor) 구성 모범 사례
리소스 소비를 제어하기 위해 RDS for SQL Server는 Microsoft SQL Server 리소스 관리자를 지원해요. 다음 모범 사례는 일반적인 구성 문제를 피하고 데이터베이스 성능을 최적화하는 데 도움이 됩니다.
출처: 문서
본문
리소스 소비를 제어하기 위해 RDS for SQL Server는 Microsoft SQL Server 리소스 관리자를 지원해요. 다음 모범 사례는 일반적인 구성 문제를 피하고 데이터베이스 성능을 최적화하는 데 도움이 됩니다.
- 리소스 관리자 구성은 master 데이터베이스에 저장돼요. 리소스 관리자 구성 스크립트의 사본은 항상 별도로 저장해 두는 것이 좋아요.
- 분류기 함수(classifier function)는 로그인 처리 시간을 늘리므로, 분류기에서 복잡한 로직은 피하는 것이 좋아요. 지나치게 복잡한 함수는 로그인 지연이나 연결 시간 초과(Amazon RDS 자동화 세션 포함)를 일으킬 수 있어요. 이는 Amazon RDS 자동화가 인스턴스 상태를 모니터링하는 능력에 영향을 줄 수 있어요. 따라서 프로덕션 환경에 적용하기 전에 사전 프로덕션 환경에서 항상 분류기 함수를 테스트하는 것이 좋아요.
- 작업 그룹에서
REQUEST_MAX_MEMORY_GRANT_PERCENT를 높은 값(70 이상)으로 설정하지 마세요. 이 값이 높으면 DB 인스턴스가 다른 동시 쿼리에 충분한 메모리를 할당하지 못해 메모리 부여 시간 초과 오류(오류 8645)가 발생할 수 있어요. 반대로 이 값을 너무 낮게(1 미만) 또는 0으로 설정하면 메모리 작업 영역이 필요한 쿼리(정렬이나 해시 연산을 포함하는 쿼리 등)가 사용자 정의 작업 그룹에서 제대로 실행되지 않을 수 있어요. RDS는 기본 작업 그룹의 값을 1에서 70 사이로 제한하여 이 제한을 강제합니다. - TempDB를 리소스 풀에 바인딩할 때, 메모리 최적화된 TempDB 메타데이터를 풀에 바인딩한 후 풀이 최대 설정에 도달하면 TempDB를 사용하는 쿼리가 메모리 부족 오류로 실패할 수 있어요. 특정 상황에서는 메모리 부족 오류가 발생하면 SQL Server가 중지될 수도 있어요. 이런 일이 발생할 가능성을 줄이려면 메모리 풀의
MAX_MEMORY_PERCENT를 높은 값으로 설정하세요.