본문 바로가기

MS SQL

[MS SQL] MS SQL 서버의 메모리 사용량 설정

이슈: MS SQL 서버의 메모리 사용량이 매월 증가하고 있어요. 현재 70%가 넘었는데 이 추세라면 2달정도 뒤엔 90%를 넘을 것 같아요.

 

원인1: MS SQL은 메모리 사용 후 반환하지 않는 특성을 가지고 있습니다. 또한 개발자들의 쿼리(Adhoc)도 메모리를 사용합니다.

원인2: MS SQL Max Memory 설정이 94%로 너무 크게 설정되어 있습니다.

 

해결법: MS SQL Max Memory를 70%정도로 낮추고, 메모리 반환을 위한 주기적인 서버 Reboot 또는 MS SQL을 재시작하여 메모리 초기화


[문제 상황]

MS SQL 서버의 메모리 사용량이 매월 증가하여 서버에 부담을 증가시키고 있음

2022년 5월부터 시작하여 2023년 1월까지 꾸준히 메모리 사용량이 증가하고 있는 모습

MS SQL 서버의 Max Memory 설정이 너무 높게 되어 있음


[해결법]

MS SQL 서버의 Max Memory 설정을 70%정도로 낮춰줍니다.

 

Step.01

SSMS(Microsoft SQL Server Management Studio)를 실행합니다.

SQL Server에 로그인 한 후 개체 탐색기의 SQL Server를 우클릭 > 속성 > 서버 속성 창에서 메모리 탭을 클릭합니다.

이후 최대 서버 메모리를 수정한 후 '확인'을 클릭합니다.

UI를 이용한 최대 서버 메모리 변경 방법

또는 SSMS에서 쿼리문을 이용하여 최대 서버 메모리를 변경할 수 있습니다.

쿼리문은 아래와 같습니다.

Exec sp_configure 'show advanced options', 1
Reconfigure
Go
Exec sp_configure 'max server memory (MB)', 40000 --2000
Reconfigure
Go

쿼리문을 이용한 최대 서버 메모리 변경 방법

 

Step.02

최대 메모리 설정 후 재부팅 없이 설정한 값이 적용되므로 재부팅은 필수 사항이 아닙니다.

 

Step.03

주기적으로 MS SQL 서비스를 재시작하여 메모리를 반환합니다.

MS SQL 서비스 재시작은 SQL 서버 구성 관리자를 이용하여 실행할 수 있습니다.