Paged Pool 메모리가 부족한 경우 다음과 같은 이벤트 로그가 발생합니다.
원본 - SRV
종류 - 오류
이벤트 ID - 2020
설명 -
풀이 비었으므로, 서버가 시스템의 페이지된 풀에서 할당하지 못했습니다.
데이터 -
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 00000000 00000000
0020: 00000000 00000000 0000000b
위의 메시지가 발생하는 경우 Kernel의 PagedPool 메모리 부족으로 서버가 Hang이 걸릴 수 있습니다.
특히 3GB를 주는 경우에는 Kernel 메모리가 줄어들기 때문에 사용할 수 있는 PagedPool 메모리가 줄어들게 됩니다.
그림 1을 보면 물리적 메모리의 변화에 따라 32비트의 OS에서는 Paged Pool과 Non Paged Pool이 크게 변하지 않는 것을 알 수 있습니다.
도리어 PTE 옵션을 주면 특정 메모리 구간에서는 줄어드는 현상을 볼 수 있습니다.
(즉, PTE와 3GB옵션을 줄때는 고려를 많이 해야합니다.)
이런 PoolPaged 메모리가 찰때 실제 OS는 어떻게 Memory를 처리하느냐!?
실제 PoolPaged 메모리가 80%가 되면 Memory 관리자는 메모리 정리 작업을 시작합니다.
서버 운영 중 해당 메모리 사용이 많은 경우 아래와 같이 해당 메모리 정리 작업을 빠르게 진행하게 할 수 있습니다.
원본 - SRV
종류 - 오류
이벤트 ID - 2020
설명 -
풀이 비었으므로, 서버가 시스템의 페이지된 풀에서 할당하지 못했습니다.
데이터 -
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 00000000 00000000
0020: 00000000 00000000 0000000b
위의 메시지가 발생하는 경우 Kernel의 PagedPool 메모리 부족으로 서버가 Hang이 걸릴 수 있습니다.
특히 3GB를 주는 경우에는 Kernel 메모리가 줄어들기 때문에 사용할 수 있는 PagedPool 메모리가 줄어들게 됩니다.
[그림 1] Paged, NonPaged 메모리 변화량
그림 1을 보면 물리적 메모리의 변화에 따라 32비트의 OS에서는 Paged Pool과 Non Paged Pool이 크게 변하지 않는 것을 알 수 있습니다.
도리어 PTE 옵션을 주면 특정 메모리 구간에서는 줄어드는 현상을 볼 수 있습니다.
(즉, PTE와 3GB옵션을 줄때는 고려를 많이 해야합니다.)
이런 PoolPaged 메모리가 찰때 실제 OS는 어떻게 Memory를 처리하느냐!?
실제 PoolPaged 메모리가 80%가 되면 Memory 관리자는 메모리 정리 작업을 시작합니다.
서버 운영 중 해당 메모리 사용이 많은 경우 아래와 같이 해당 메모리 정리 작업을 빠르게 진행하게 할 수 있습니다.
- 레지스트리 편집기(Regedt32.exe)를 시작합니다.
- 레지스트리에서 다음 키를 찾아 누릅니다.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management
- 편집 메뉴에서 값 추가를 누르고 아래와 같은 레지스트리 값을 추가합니다.
값 이름: PoolUsageMaximum값을 60으로 설정하면 기본 설정인 80%가 아니라 PagedPoolMax의 60%에서 메모리 해제 프로세스를 시작하도록 메모리 관리자에게 알립니다. 60%의 임계값이 증가하는 사용량을 처리하기에 부족하다면 이 설정을 50%나 40%로 줄이십시오.
데이터 형식: REG_DWORD
기수: 10진수
값 데이터: 60값 이름: PagedPoolSizePagedPoolSize를 0xFFFFFFFF로 설정하면 컴퓨터에 다른 리소스 대신 최대 페이지된 풀을 할당합니다.
데이터 형식: REG_DWORD
기수: 16진수
값 데이터: 0xFFFFFFFF - 레지스트리 편집기를 끝냅니다.
- 변경 내용이 적용되도록 서버를 다시 시작합니다.
(위의 내용은 http://support.microsoft.com/?id=312362 발췌)