brunch

You can make anything
by writing

C.S.Lewis

by 이동인 Oct 10. 2019

비 페이징 풀과 페이징 풀

About Infra.

윈도우 서버를 운영하다보면 비페이징 풀이 점점 커지는 현상으로 인해 장애를 겪기도 합니다. 이런경우 하드웨어, 파일 시스템 필터, 백신 등의 장치 드라이버에서 발생하는 경우일 수 있지만 시스템 관리자가 이런 부분을 찾는 것은 쉬운 일이 아닙니다. 윈도우에 존재하는 페이징 풀 지표는 윈도우에 작업 관리자를 열어서 확인해 볼 수 있습니다. 윈도우 관리자에는 페이징 풀과 비페이징 풀 지표가 나타납니다. 그럼 메모리에서 페이징 풀의 의미와 이들이 서버 관리에 있어서 어떻게 사용되는지 알아 보겠습니다. 


페이지의 의미

윈도우에서 페이지의 의미는 가상 메모리를 사용하는 최소 크기 단위를 의미합니다. 윈도우에서 페이지라는 단어가 들어가는 용어는 가상화에 관련된 의미로 사용됩니다. 때문에 비 페이징 풀은 가상화 되지 않고 관리되는 공간을 의미하며 페이징 풀은 가상화 되어 관리되는 공간을 의미하게 됩니다. 


비 페이징 풀(Nonpaged Pool)

메모리 풀은 운영 체제 및 장치 드라이버가 데이터 구조를 저장하는 데 사용하는 메모리 리소스 역할을합니다. 메모리 풀은 비 페이징 풀과 페이징 풀로 구성되어 있습니다. 비 페이징 풀은 가상화된 메모리를 사용하지 않고 항상 실제 메모리를 사용하는 메모리 풀을 의미합니다. 

메모리 풀 관리자는 시스템의 가상 주소 공간 영역을 사용하여 커널 모드에서 작동합니다. 커널 및 장치 드라이버는 시스템이 페이지 폴트를 다룰수 없는 상황에서도 접근할수 있는 데이터를 저장하기 위해 항상 실제 메모리에 물리적으로 존재하는 비 페이징 풀을 사용합니다. 비 페이징 풀에 저장된 일반적인 시스템 데이터 구조에는 프로세스 및 스레드를 나타내는 커널 및 개체, 뮤텍스, 세마포어 및 이벤트와 같은 동기화 개체, 파일 개체로 표시되는 파일 참조 및 I / O 요청 패킷 (IRP)이 포함됩니다. 


비 페이징 풀의 경우 운영체제가 제한하는 범위는 아래와 같습니다. MS 개발자 센터 바로가기

32bit 운영체제인 경우

XP, Server 2003:  램이 1.2GB 이하인 경우 32MB에서 256 MB, 램이 1.2GB 넘으면 256MB 까지 

Vista, Server 2008, Windows 7, Server 2008 R2: 시스템 제공 범위의 75% 또는 2GB 까지

Windows 8, Server 2012: 시스템 제공 범위의 75% 또는 2GB 까지


64bit 운영체제인 경우

XP, Server 2003: 128MB 까지

Vista, Server 2008, Windows 7, Server 2008 R2: RAM 또는 128GB 까지

Windows 8.1 and Windows Server 2012 R2: RAM 또는 15.5TB 중 작은 값


페이징 풀(Paged Pool)

페이징 풀은 가상화된 메모리를 사용할 수 있다는 점에서 비 페이징 풀과 다릅니다. 페이징 풀을 사용하는 대표적인 경우는 레지스트리 키 및 기타 레지스트리 데이터 구조에 대한 참조를 저장할 때 입니다. 페이징 풀의 사용량이 가장 큰 요소는 일반적으로 레지스트리입니다. 내부적으로 섹션 이라고하는 메모리 매핑 된 파일을 나타내는 데이터 구조도 페이징 풀에 저장됩니다. 


페이징 풀의 경우 운영체제가 제한하는 범위는 아래와 같습니다. MS 개발자 센터 바로가기

32bit 운영체제인 경우

XP: 491MB 까지

Server 2003: 650MB 까지

Vista, Server 2008, Windows 7, Server 2008 R2: 시스템 제공 범위 또는 2GB 까지

Windows 8, Server 2012: 시스템 제한 또는 2GB 까지


64bit 운영체제인 경우

XP, Server 2003: 비 페이징 풀의 4배 또는 128MB 까지

Vista, Server 2008, Windows 7, Server 2008 R2: 시스템 제공 범위 또는 128GB 까지

Windows 8, Server 2012: 시스템 제한 또는 384GB 까지


마무리

비페이징 풀과 페이징 풀은 시스템이 사용하는 메모리입니다. 풀 누출이 의심되고 시스템에서 여전히 추가 응용 프로그램을 시작할 수있는 경우 Windows Driver Kit 의 도구 인 Poolmon을 사용하실 수 있습니다. 메모리 풀의 증가에 있어서 애플리케이션의 문제가 아닐 경우 드라이버나 백신의 문제인 경우가 많습니다. 이런 경우에는 메모리 풀을 검사하여 누출원인을 확인해야 합니다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari