MS SQL 은 한번 사용한 (호출한) 메모리를 OS 에 반환하지 않습니다. 그래서 재부팅후 메모리 사용량이 꾸준히 올라가서 나중엔 늘 한계치를 사용하는것 처럼 보입니다. 잘 사용 되고 있는겁니다.
그래서 저희는 Jook 님 설명 처럼 아래 처럼 셋팅해서 사용합니다. OS 메모리 보다 적게 적당량을 Max로 지정. 추가로 한달에 한번씩 정기적으로 서버를 재부팅 합니다. (메모리 때문은 아니고 회사 정책상)
양성환
| 6년 이상 전
반환안하는것은 아니고, MIN이 MAX와 동일한경우만 반환하지않습니다. MIN이 작은 경우 OS가 요청 시 반환하기도합니다. 게다가 MAX는 버퍼풀이라는 공간만 지정하는 공간으로 해당영역이상 메모리를쓸수도있습니다. 메모리메커니즘은 SQL SERVER 버전마다 다를수있습니다.
한그루
| 6년 이상 전
아 그렇군요. 메모리를 한번 점유해서 사용하면 보통은 OS가 요청하지 안으면 반환을 하지는 않다가 OS가 요청하면 가끔 메모리 반환이 생기기도 하는거군요? 조금더 명확해 졌습니다. 서버 모니터링 툴을 보면 보통 전체적으로 사용량이 확 주는 일이 없고 거의 올라간 상태로 유지가 되지만 경고가 왔다가 해소 됐다가 하더라구요. 감사합니다.
양성환
| 6년 이상 전
모니터링툴에서 DBMS는 메모리리밋이 99%일때를 제외하고는 빼두셔도됩니다. 아주정확하진않지만, 그정도리밋이면 튜닝이필요하거나 물리적메모리가 부족한 경우이니까요. 버퍼풀영역, 즉 MAX설정치는 반환을잘안하는데,그외에 영역들,연결된서버사용 이나, 쿼리상 XML사용분등은 버퍼풀영역이아니여서 반환가능합니다. 버퍼풀영역은 반환이되는경우가 성능상은 더 심각한경우일수도있어요^^::
한그루
| 6년 이상 전
그렇군요. 메모리 경고 상한선을 97% 로 해야겠네요. 감사합니다.
양성환
0 추천
|
6년 이상 전
최대메모리 설정은 jook님 이야기대로 설정가능합니다만, RDBMS에서 메모리를 많이쓰는것은 문제가있는것이 아니라 매우잘쓰고있는겁니다. RDBMS특성상 쿼리 재사용을 위해 메모리 저장을합미다. 다만 부족하다면 원인을 찾아야하는것이구요
danis78
0 추천
|
6년 이상 전
| 제이컴즈
| 010-2871-8756
sqlserver 에서 메모리를 어느정도 잡아 먹는지 모르겠지만 참고로 저희 회사 그룹웨어는 10G 정도 사용하고 있네요 다른 서버랑 연결된 게 많이 있어서요
jook
0 추천
|
6년 이상 전
management studio 접속후, 서버속성 -> 메모리 -> 최대서버 메모리 값을 조정하여, sqlserver에서 사용할 수 있는 최대 메모리 값을 제한 할 수 있습니다.
무조건 메모리를 제한 하는 것 보다, 어떤 DB, table 에서 사용량이 많은지 체크하고, 근본적인 원인을 찾아서 해결 하셔야 할 것 같습니다. ~~
5개의 답변이 있습니다.
VM에서 최대 리소스를 올려보아도
해당 리소스를 전부 사용하는것으로 보아,
동일한 현상으로 보이네요
그래서 재부팅후 메모리 사용량이 꾸준히 올라가서 나중엔 늘 한계치를 사용하는것 처럼 보입니다.
잘 사용 되고 있는겁니다.
그래서 저희는 Jook 님 설명 처럼 아래 처럼 셋팅해서 사용합니다. OS 메모리 보다 적게 적당량을 Max로 지정.
추가로 한달에 한번씩 정기적으로 서버를 재부팅 합니다. (메모리 때문은 아니고 회사 정책상)
양성환 | 6년 이상 전
한그루 | 6년 이상 전
양성환 | 6년 이상 전
한그루 | 6년 이상 전
RDBMS특성상 쿼리 재사용을 위해 메모리 저장을합미다.
다만 부족하다면 원인을 찾아야하는것이구요
다른 서버랑 연결된 게 많이 있어서요
무조건 메모리를 제한 하는 것 보다, 어떤 DB, table 에서 사용량이 많은지 체크하고, 근본적인 원인을 찾아서 해결 하셔야 할 것 같습니다. ~~
부산갈매기 | 6년 이상 전