과거 DB서버(서버에 DB만 설치된 단독 DB서버)에서 이따금씩 배치 오류가 난 적이 있다.
서버 메모리가 65GB라면 DB메모리를 약 60GB 정도를 할당한 경우였다.
딱히 원인을 알 수 없었는데 MS 전문가의 도움을 받아 로그분석을 한 결과 특정 시간대에 OS의 메모리 부족 현상에 의해 배치가 중단되었고 원인은 MSSQL에서 호출하는 CLR Object로 밝혀졌다. CLR Object로 인해 OS가 사용할 메모리마저 부족했던 것이다.
즉시 MSSQL의 MIN/MAX MEMORY를 살짝 낮춰주었고 이후에는 재발하는 경우가 없었다.
아래 그림처럼 SSMS에서 서버 속성에 들어가서 변경할 수도 있다.
변환 스크립트는 다음과 같다.
-- 먼저 show advanced option을 1로 설정하면 고급 구성 옵션이 표시된다.
-- RECONFIGURE WITH OVERRIDE 옵션을 사용하면 시스템 재기동을 하지 않고 OVERRIDE가 가능하다.
EXEC SP_CONFIGURE 'SHOW ADVANCED OPTIONS', '1' RECONFIGURE WITH OVERRIDE
GO
-- 구성 확인
EXEC SP_CONFIGURE
GO
-- MIN MEMOERY 48GB로 변경
-- RECONFIGURE WITH OVERRIDE 옵션을 사용하면 시스템 재기동을 하지 않고 OVERRIDE가 가능하다.
EXEC SP_CONFIGURE 'MIN SERVER MEMORY (MB)', 49152
RECONFIGURE WITH OVERRIDE
GO
-- MAX MEMOERY 48GB로 변경
-- RECONFIGURE WITH OVERRIDE 옵션을 사용하면 시스템 재기동을 하지 않고 OVERRIDE가 가능하다.
EXEC SP_CONFIGURE 'MAX SERVER MEMORY (MB)', 49152
RECONFIGURE WITH OVERRIDE
GO
-- 먼저 show advanced option을 0로 설정하면 고급 구성 옵션을 닫는다.
-- RECONFIGURE WITH OVERRIDE 옵션을 사용하면 시스템 재기동을 하지 않고 OVERRIDE가 가능하다.
EXEC SP_CONFIGURE 'SHOW ADVANCED OPTIONS', '0' RECONFIGURE WITH OVERRIDE
GO
-- 구성 확인
EXEC SP_CONFIGURE
GO
아래 사진은 임시로 캡처한 것이며 min/max server memory의 config_value값을 보면 현재 7168MB로 설정되어있다. 실행값 run_value도 동일하다.
이를 SP_CONFIGURE 명령어로 변경이 가능하며 RECONFIGURE WITH OVERRIDE를 통해 DB 재시작없이 바로 적용이 가능하다.
피드 구독하기:
댓글 (Atom)
2022년 회고
올해는 블로그 포스팅을 열심히 못했다. 개인적으로 지금까지 경험했던 내용들을 리마인드하자는 마인드로 한해를 보낸 것 같다. 대부분의 시간을 MLOps pipeline 구축하고 대부분을 최적화 하는데 시간을 많이 할애했다. 결국에는 MLops도 데이...
-
MSSQL에는 저장프로시저가 아주 강력하고 문법 자체도 편하기(?) 때문에 토이프로젝트를 진행할 때 DB를 MSSQL을 주로 사용한다. 본인 노트북, 혹은 데스크탑에 MSSQL을 설치하고 SSMS로 접속을 하려고 할 때 서버이름에 loc...
-
화면에서 프린트 기능을 구현했는데 글자들은 잘 나오지만 CSS가 안먹는 경우가 간혹 발생했다. 마크업된 CSS를 불러오지 못해 발생하는 문제로 판단했고 약간의 트릭으로 해결할 수 있었다. 아래는 구현된 화면이다. 이 화면을 출력하고자 다...
-
요즘같이 디스크 용량 걱정이 없는 세상에서는 MSSQL Shrink를 볼 일이 없을 것 같았는데 얼마 전 회사에서 SHRINK를 할 일이 생겨서 진행했었다. 디스크 용량이 약 4테라이고 해당 디스크는 db file만 존재하여 딱히 지울 파일이 없었...
좋은 글 잘 보고 갑니다.
답글삭제감사합니다~
삭제