728x90
반응형
MSSQL을 사용하는 서버를 운영하다 보면
메모리가 계속 증가하는 것을 볼 수 있다.
계속 방치해두면 메모리 과부하로 접속 장애나
운영 중인 서비스에 성능 저하, 서버 시스템 성능 저하 문제가 발생할 수 있다.
이는 MSSQL은 메모리를 한번 점유하면
OS가 요청하지 않는 이상 메모리를 반환하지 않는다.
그렇기 때문에 단순히 메모리를 증설하더라도
얼마 지나지 않아 또다시 메모리 과부하가 생길 수 있다.
그렇기 때문에 SQL 서버가 사용할 수 있는
최대 메모리를 설정하여 제한하는 것이 필요하다.
보통 전체 메모리의 70% 정도로
최대 메모리를 설정해 주는 것이 좋다.
메모리 권장 수치
위의 표는 권장 수치이고
서버 OS 환경에 따라 조금 더 낮게 설정해 주면 된다.
SSMS를 통한 설정
SSMS를 실행하여 관리 대상 DB 연결 및 접속을 한다.
1. 개체 탐색기에서 대상 서버를 우클릭 -> 속성을 클릭한다.
2. 메모리 탭을 클릭한다.
최대 서버 메모리가 2147483647라고 설정되어 있으면
무제한으로 증가한다.
위의 메모리 권장 수치를 참조하여
최대 서버 메모리 값을 변경해 준다.
확인 버튼을 누르면
재가동이나 재부팅을 안 해도 적용이 된다!!
스크립트를 통한 설정
--고급 옵션이라 SHOW ADVANCED OPTIONS이 1로 설정된 경우만 변경 가능
EXEC sp_configure 'SHOW ADVANCED OPTIONS', 1
--즉시 적용
RECONFIGURE WITH OVERRIDE
GO
-- 최소 메모리 2GB로 설정
EXEC sp_configure 'min server memory (MB)', 2048
RECONFIGURE WITH OVERRIDE
GO
-- 최대 메모리 8GB로 설정
EXEC sp_configure 'max server memory (MB)', 8192
RECONFIGURE WITH OVERRIDE
GO
--다시 0으로 설정
EXEC sp_configure 'SHOW ADVANCED OPTIONS', 0
--즉시 적용
RECONFIGURE WITH OVERRIDE
GO
최대 메모리를 설정하여
서버 메모리 관리를 해주자!!
728x90
반응형
'개발이야기 > MSSQL' 카테고리의 다른 글
[MSSQL] 트랜잭션 로그가 꽉 찼습니다. (0) | 2024.07.10 |
---|---|
[MSSQL] 특정 컬럼명이 있는 테이블 모두 조회하기 (0) | 2024.07.10 |
[MSSQL] Delete 문 사용하여 데이터 삭제하기 (0) | 2024.07.05 |
[MSSQL] 시간 간격 계산: DATEDIFF 함수의 활용 (0) | 2024.06.11 |
[MSSQL] 날짜와 시간 다루기: DATEADD 함수의 활용 (0) | 2024.06.10 |