본문으로 바로가기

어느날 MS-SQL server DB를 사용하는 서버와의 통신이 제대로 안된다면, 

요인중의 하나는 서버의 메모리가 100%로 찼을 때이다. (Ms-sql이 메모리를 많이 잡아 먹음)

컴퓨터의 메모리가 과부하되면, 컴퓨터는 더이상 service를 할 수 없다.

 이때 서버를 재부팅 하게 되면 일시적으로 메모리가 줄지만,

곧 다시 과부하가 걸린다.


이 증상을 대처 및 예방 하기 위해서는 다음과 같은 일련의 단계를 거치면 된다.


1. 메모리 과부하가 의심 될 때, 작업관리자를 실행한다.

 (작업관리자 실행은 ctrl + Alt + Delete 나, 위의그림과 같이 클릭으로도 실행 할 수 있다.)


2. 속성> 성능을 확인 한다.

(위의 그림은 메모리가 과부화 되지 않았을때 이다. 과부화일 경우 메모리 스택의 높이가 끝까지 상승.)


3. 만약, 과부하가 걸려 있는 사실이 확인되면, 프로세스에서 프로세스중 메모리를 가장 많이 잡아먹는 녀석을 찾는다.

- 이때 모든 사용자 프로세스 표시를 클릭 해야, 전체 프로세스 목록이 나온다.(sqlserver.exe프로세스 가 표시되지 않을 수 있으므로, 반드시 체크)

- 위와같이, sqlserver.exe프로세스가 메모리를 4G가까이 잡아먹고있다.


4. 이 현상이 파악되었다면 서버에서 사용하는 MS sql DB에접속할 수 있는, MS sql server management studio를 실행한다.

여기서, DB의 마우스 우클릭을 통해 속성에 들어간다.


5.속성의 메모리 부분에서 최대 서버 메모리를 변경한다.( 마지막에 적정값 첨부)

(보통 최대 서버메모리가 server램의 크기보다 크다. 그러면, sqlserver.exe의 필요에 의해 메모리를 계속 잡아먹게 되고, 결국 과포화상태가된다.)


* 서버 메모리별, sqlserver 최대 서버 메모리 이상값.(필요할 경우 조금씩 늘려 설정해도 됨.)





출처: http://ideagarden.tistory.com/entry/MSsql-server-메모리-과부하-대처법 [생각의정원]