티스토리 뷰

아래 글은 이전에 Windows Server 2003에서 session paged pool의 full로 진행한 case의 일부 내용을 정리 한 것입니다. session paged pool, desktop heap, session view sapce 등을 이해하는데 도움이 되기를 바랍니다.

[질 문]
Windows Server 2003 x86 환경의 터미널 서버 사용시 사용 되던 session paged pool(32M)이 원격 관리모드(터미널 서버 제거 후)에서는 사용하지 않는데 이로 인해 야기 될 수 있는 문제는 없는지요?
그리고 터미널 서버에서 사용 되었던 session paged pool 영역이Paged pool의 영역으로 변경 되는 건지요?


터미널 서비스 사용 (Windows Server 2003 x86)

터미널 서버 제거 후 (Windows Ser ver 2003 x86)

[답 변]
Remote admin mode(원격 관리 모드) 에서는 session paged pool 를 사용하지 않고 regular paged pool 을 사용합니다.
이는 remoteadmin mode 에서는Session 의 수가 제한(원격 2개, 콘솔1개)되어 있기 때문입니다.

그러나 application server mode(원격 서버 모드) 에서는 session paged pool 을 사용해야 합니다. 만약 session paged pool 을 사용하지는 않는 상황에서  수백개의 session 이 존재할 경우 regular paged pool 을 각각의 session 마다 32 MB 씩 할당하게 되면 다른 용도로 사용하기 힘들게 됩니다.
따라서, session specific area 인 session paged pool 을 사용합니다.

이런 경우에 야기될 수 있는 문제는 session paged pool leak 현상이 발생하듯이 이런 leak 이 regular paged pool 에서도 일어나면 regular paged pool 고갈이 발생해서오히려 큰 문제가 일어 날 수도 있습니다.
regular paged pool 은 system-wide 이고 session paged pool 은 session-wide 이니까요

예를들어서 session #0 의 Windows Explorer 가 장시간 suspend 이고(이럴 가능성은 거의 없지만) 그래서 수많은 WM_COPYDATA 가 stuck 이 되면regular paged pool 이 고갈되어서 그로인해 정작 이를 필요로 하는 NT kernel 뿐 아니라 kernel driver 들이 out of resources 현상을 겪어서 system 에 중대한 영향을 줄 수 있습니다.

또한  Desktop Heap은Session View Space에 포함되어 있고, Session Paged Pool는 터미널 서비스가 설치되면 사용되는 부분입니다. 즉, 터미널 서비스를 제거하면Session Paged Pool은 기본값은 4MB로 줄어들고, Session View Space는 그 만큼 커지므로 desktop 부족 문제를 해결하는데 도움이 될 수 있습니다.


감사합니다
.^^

댓글
댓글쓰기 폼