RDS for SQL Server에서 리소스 거버너를 구성하는 모범 사례
리소스 소비를 제어하기 위해 RDS for SQL Server는 Microsoft SQL Server 리소스 거버너를 지원합니다. 다음 모범 사례는 일반적인 구성 문제를 방지하고 데이터베이스 성능을 최적화하는 데 도움이 됩니다.
-
리소스 거버너 구성은
master데이터베이스에 저장됩니다. 리소스 관리자 구성 스크립트의 사본을 항상 별도로 저장하는 것이 좋습니다. -
분류기 함수는 로그인 처리 시간을 연장하므로 분류기에서 복잡한 로직을 피하는 것이 좋습니다. 지나치게 복잡한 함수는 Amazon RDS 자동화 세션을 포함하여 로그인 지연 또는 연결 제한 시간을 유발할 수 있습니다. 이는 인스턴스 상태를 모니터링하는 Amazon RDS 자동화 기능에 영향을 미칠 수 있습니다. 따라서 프로덕션 환경에서 구현하기 전에 항상 사전 프로덕션 환경에서 분류기 함수를 테스트하는 것이 좋습니다.
-
워크로드 그룹에서
REQUEST_MAX_MEMORY_GRANT_PERCENT에 대한 높은 값(70 이상)을 설정하지 마세요. 이렇게 하면 데이터베이스 인스턴스가 다른 동시 쿼리에 충분한 메모리를 할당하지 못하여 메모리 권한 제한 시간 오류(오류 8645)가 발생할 수 있습니다. 반대로이 값을 너무 낮거나(1 미만) 0으로 설정하면 메모리 워크스페이스가 필요한 쿼리(정렬 또는 해시 작업과 관련된 쿼리 등)가 사용자 정의 워크로드 그룹에서 제대로 실행되지 않을 수 있습니다. RDS는 기본 워크로드 그룹에서 값을 1~70으로 제한하여 이러한 제한을 적용합니다. -
tempdb를 리소스 풀에 바인딩하는 경우 메모리 최적화 tempdb 메타데이터를 풀에 바인딩한 후 풀이 최대 설정에 도달할 수 있으며
tempdb를 사용하는 쿼리는 out-of-memory 오류로 인해 실패할 수 있습니다. 경우에 따라 메모리 부족 오류가 발생할 경우 SQL Server가 중지될 수 있습니다. 이러한 일이 발생할 가능성을 줄이려면 메모리 풀의MAX_MEMORY_PERCENT를 높은 값으로 설정합니다.