Windows ETC

메모리 관리 용어 정리 - Part 4

2012.11.30 08:23

호스트웨이 조회 수:3189

윈도우 NT 대부분의 입출력을 가상 메모리로 캐시한다. 윈도우 NT 시스템은 이러한 캐시들을 워킹 셋과 비슷한 방법으로 관리한다. 시스템에서 메모리가 필요한 경우, 입출력 캐시는 프로세스 워킹 셋과 같이 정리되어 시스템에 메모리를 주게 된다. 메모리가 충분한 경우에는 메모리는 입출력 성능을 향상시키기 위해 입출력 캐시로 사용되게 된다. 이런 시스템 디자인은 메모리를 자동적으로 최적 성능이 나도록 전환하는 기능을 수행하게 된다. 메모리가 필요한 경우에는 시스템 메모리를 사용하는 캐시가 줄어들고 메모리의 여유가 있을 경우에는 시스템 메모리를 사용하는 캐시가 늘어나게 된다.

 

윈도우 NT 입출력을 설정하는 항목은 제어판에 존재하는 네트워크 설정의 하위 개체인 Server function 하나밖에는 없다. 파일 공유 설정 옵션을 최대로 하면 입출력 캐시가 최대로 늘어나고 입출력 체증이 매우 걸릴 때는 시스템 메모리 거의 전부를 입출력 캐시로도 사용할 있다. 물론 설정을 최대로 놓는다고 하더라도 항상 이렇게 입출력 캐시가 크게 유지되는 것은 아니다. 입출력 캐시는 항상 다른 주변 장치들과 메모리 사용 경쟁을 벌이기 때문이다. 네트워크 개체의 설정을 최대로 놓으면 입출력 캐시는 설정되어 있는 메모리 사용 한계보다 적은 양의 메모리를 사용하게 된다. 만약 마이크로소프트의 SQL서버를 사용한다면 SQL 설치할 네트워크 개체의 설정은 최대로 바뀌게 된다. 이것은 네트워크 응용프로그램과 효율적인 데이터 통신을 위해서이다. 따라서 입출력 체증이 프로그램을 SQL 서버와 같이 사용하는 것은 좋지 않다.

 

메모리와 캐시 병목 현상 제거   윈도우 NT 파일을 때는 캐시는 파일을 주소 공간에 매핑해 두고 마치 파일을 하나의 연속된 메모리 공간을 액세스하듯이 읽어 오게 된다. 응용프로그램이 파일 데이터를 다시 요구하게 경우에는 파일 시스템은 먼저 캐시에 내용이 저장되어 있지 않는지 여부를 살펴보게 된다. 그리고 캐시 하위 시스템은 내용을 응용프로그램의 버퍼로 복사하려고 시도한다. 만일 페이지가 캐시의 워킹 내부에 존재하지 않는다면 페이지 오류가 나타나게 된다. 페이지가 메모리에 올라가게 되면 페이지의 주소는 캐시의 워킹 셋에 저장되게 된다. 캐시가 있다고 해도 페이지 전체가 캐시에 복사되는 구조가 아니다. 이러한 구조는 페이지 테이블 엔트리가 정확히 페이지의 주소를 가리키고(point)있을 때만 유효하다. 만약 페이지가 지정된 메모리 주소에 존재하지 않을 경우에는 메모리 관리자는 페이지를 적절한 주변 장치로부터 읽어 오게 된다. 캐시는 이처럼 마치 워킹 셋과 같은 관리 체계를 가지고 있다. 입출력 캐시는 입출력 요구가 많을 늘어나게 된다. , 파일을 복사하는 등의 작업을 사용할 있는 메모리 공간이 줄어들게 된다. 메모리의 병목 현상을 알아내려면 성능 모니터에서 언제 시스템 메모리가 부족하게 되면서 페이징 파일을 만들기 시작하는지 살펴보면 된다. %Usage %Usage Peak 항목을 관찰하여 값들이 항상 높게 유지되어 있다면 시스템의 메모리가 부족하다는 것을 있다. 다음 측정 사항들은 메모리와 캐시의 병목 현상을 알아보는 주로 쓰인다.

 

Processor Time% (프로세서가 하나 이상이 장치되어 있을 경우에는 Total Processor Time% 으로 불린다.)

Pagefile: %Usage %Usage Peak

Cache:Copy Read Hits%, Data Map Hits%

Memory: Pages/sec

Percent disk time

TCP: Segment/sec

다음 항목들은 메모리 병목 현상을 측정하는 사용된다.

Availble Bytes Counter(Memory 개체의): 사용 가능한 메모리가 4MB이하로 줄어들게 되면 메모리 관리자는 워킹 셋을 정리하기 시작한다. 따라서 현재 활성화되지 않은 메모리 영역이 손실될 있다.

%Disk 또는 TPC: Segments/sec 매우 높으면 메모리가 부족하여 하드 디스크나 네트워크가 정상 상태로 작동하고 있지 않다는 것을 뜻한다.

시스템에 걸리는 부하를 미리 알고 있으면 시스템의 병목 현상을 미리 막을 있다. 반복적인 일을 계속 수행하지 않는다면 시스템은 캐시를 별로 사용하지 않을 것이며 시스템이 아주 작은 파일을 가지고 계속 반복연산만을 수행한다면 Cash:Copy Read Hits% Data Map Hits% 아주 높은 수치를 가지고 있을 것이다. 만일 아주 높은 캐시 사용 빈도가 나올 프로그램이라고 예상하고 있었는데 뜻밖에 아주 적은 캐시 사용 빈도가 측정되었다고 하면 이것은 캐시에 병목 현상이 존재하고 있다는 신호이다.

메모리 호그(Hog)   윈도우 NT 페이지 (pool) 비페이지 풀의 종류의 시스템 메모리 (pool) 가지고 있다. 비페이지 풀은 운영 체제가 페이지 아웃이 되면 심각한 문제가 생기는 정보들이 채워진다. 보통 시스템의 장치 관리자나 커널 코드들이 이런 비페이지 풀에 저장되며 운영 체제 시스템 데이터 등의 페이지 오류가 나온 자체가 시스템 다운과 직결되는 내용이 저장된다. 그러나 비페이지 풀은 용량이 한정되어 있다. 따라서 중요한 시스템 데이터 이외에는 저장되지 못한다. 페이지 풀에는 페이지 오류가 나더라도 문제가 없는 장치 제어기나 기타 프로그램이 올라가게 된다. 윈도우 NT에는 당연히 페이지 풀이 훨씬 많이 존재한다. 메모리 리크(leak) 소프트웨어가 메모리를 사용한 다음 쓸모없이 되었는데도 불구하고 돌려주지 않는 경우 발생한다. 메모리를 별로 사용하지 않는 프로그램을 이용하는데도 불구하고 메모리 소비량이 점차 증가하기 시작하면 메모리 리크가 발생한 것으로 보면 된다. 성능 모니터는 페이지 풀과 비페이지 풀의 메모리 상태를 나타내 주며 Pool Nonpaged 들어가는 항목들과 Pool Paged 들어가는 항목들을 살펴보면 된다. 프로세스가 동작할 메모리 소비량이 점차 증가하면 확실히 메모리 리크가 발생하고 있는 것이다. 페이지 풀은 \CurrentControlSet\Control\SessionManagerManagement 키에 존재하며 여기에 의해 지정된 페이지 풀의 양은 레지스트리 크기의 상한선을 결정하는 중요한 역할을 한다. 보통 시스템은 디폴트값으로 레지스트리의 크기를 4M 이상으로 잡아 주고, 페이지 풀의 80%까지 사용하도록 준다. 페이지 풀의 크기가 128M 정도로 설정되었을 최대한 사용할 있는 레지스트리의 크기는 102M 정도가 된다. 크기는 80,000명의 사용자를 받아들일 있는 크기이다. 또한 레지스트리 크기가 최대로 설정이 되어 있다고 하더라도 이것은 반드시 레지스트리에 그만큼의 메모리가 할당된다는 것은 아니다. 레지스트리는 필요할 공간을 사용하게 되는 것이다. 따라서 메모리 설정을 크게 놓는다고 메모리가 모두 레지스트리에 할당되는 것은 아니다.

번호 제목 글쓴이 날짜 조회 수
37 성능모니터로 수집된 blg파일을 csv파일로 변환 호스트웨이 2012.09.28 3517
36 slmgr 을 이용하여 Windows Server 2012 인증 호스트웨이 2012.12.01 3497
35 outlook 2010 첨부파일 용량제한 해제 호스트웨이 2012.12.01 3223
» 메모리 관리 용어 정리 - Part 4 호스트웨이 2012.11.30 3189
33 find로 특정문자열 추출 file 호스트웨이 2012.12.20 3071
32 windows 2012 에 windows 2003 ,XP의 원격 데스크톱 연결 방법 호스트웨이 2012.12.27 3016
31 Azure를 이용한 웹사이트 및 가성컴퓨터(VM) 생성하기 file 호스트웨이 2015.03.24 2935
30 Azure를 이용한 WebApp 다루기 file 호스트웨이 2015.06.29 2909
29 윈도우 서버 2008 R2 원격 데스크톱으로 동시에 다중 접속 설정 방법 file 호스트웨이 2012.10.04 2864
28 Windows 2003 / 2008 FTP 메뉴얼 file 호스트웨이 2013.03.12 2846
27 한/영 키 변환 불가 시 호스트웨이 2012.12.01 2766
26 아웃룩 첨부파일 차단 해제 file 호스트웨이 2012.12.01 2518
25 Windows Server 기본 관리 공유 제거 file 호스트웨이 2012.11.30 2463
24 FTP 상태 코드 리스트 호스트웨이 2012.09.21 2418
23 IPSEC 을 이용한 Brute Force Attack 차단 방법 file 호스트웨이 2015.08.31 2353
22 MBR 과 GPT 호스트웨이 2012.12.01 2336
21 특정 해당 사용자만 암호를 변경 하시고 싶으시다면 - 1 호스트웨이 2012.09.28 2107
20 Windows8과 Windows 2012의 "자동 메모리 덤프" 옵션 호스트웨이 2012.09.28 2086
19 Windows NT 아키텍처 - Part 2 호스트웨이 2012.11.30 1987
18 메모리 관리 용어 정리 - Part 5 호스트웨이 2012.11.30 1979