꿈을꾸는 파랑새

오늘은 컴퓨터 메모리 최적화를 도와주는 프로그램인 Rammap에 대해 알아보겠습니다. 일단 해당 프로그램은 마이크로소프트에서 제공하는 제품으로 메모리부족, 메모리 누수 같은 상황에서 사용할 수가 있는 프로그램입니다. 리소스 모니터에서 메모리 사용 상황을 모니터하는 작업 관리자에 포함된 리소스 모니터링 도구를 사용하여 Windows 시스템의 메모리 사용량을 확인할 수가 있습니다.
리소스 모니터는 Windows Vista, Windows Server 2008 이상 윈도우 운영체제에서 이용할 수 있는 프로그램입니다. 리소스 모니터는 전체적인 메모리 사용량은 알지만, 예를 들어 사용 중인 메모리 페이지가 어떤 프로세스 나 용도 (커널 메모리 또는 장치 드라이버 나 파일 캐시 있는지 등)에 사용 있는지 알 수 없습니다. 이렇게 세세한 여부는 일반적으로 알 필요가 없겠지만, 개발자 및 고급 문제 해결 작업을 할 엔지니어에게 필요한 정보일 것입니다. 메모리의 상세한 이용 상황을 알려면 Windows 용 디버그 Debugging Tools for Windows를 내려받기해서 실행하시면 됩니다. 해당 부분은 잘 사용을 할 필요가 없습니다. 해당 부분은 일반 사용자 분들은 사용은 필요 없습니다.
Rammap 도구는 Sysinternals 출시하는 시스템 조사 도구의 하나로서 Windows 시스템의 메모리의 상세한 이용 상황을 표시할 수 있으며 메모리의 일반적인 이용 방법 외에도 각 프로세스의 이용 상황, 매핑 된 파일 정보 메모리 페이지당 이용 상황 등 매우 자세한 정보를 얻을 수가 있습니다.
Rammap 도구를 이용하려면 해당 제공을 하는 사이트에서 ZIP 형식의 파일을 다운로드하고 어딘가 적당한 위치에 압축을 풀고 안에 들어 있는 rammap.exe을 더블 클릭하여 실행하면 됩니다. Windows 64bit에서 사용하면 64bit 버전의 도구 (Rammap64.exe)가 같은 위치에 있기 때문에 해당 부분을 선택해서 실행하시면 됩니다.
Rammap을 시작하면 메모리의 용도별 상황별 이용 상황 (크기)가 표시된다.
가로는 메모리 (메모리 페이지)의 이용 상태. 사용 중이거나 대기 또는 사용되지 않는 등 알 수 있다. 자원 모니터의 물리적 메모리의 누적 사용량은  내용은 거의 같습니다.
세로는 용도별 분류.
Rammap는 업데이트가 자동으로 되지 않으면 됩니다. (갱신 처리가 매우 무겁기 때문입니다.).굳이 업데이트를 하고 싶은 경우에는 F5을 눌러주면 됩니다.

Rammap(램맵)

Rammap(램맵) 메인 화면Rammap(램맵) 메인 화면

Rammap에서는 예를 들어 프로세스 개별 메모리 중 변경된 부분을 알 수가 있습니다.
각 항목의 의미는 다음과 같다.
가로부분은 다음과 같습니다.
Active: 액티브 (활성) 메모리 페이지 (크기). 프로세스 (작업 세트)이나 장치 드라이버, 커널 등으로 사용되는 사용 중인 메모리 페이지
Standby: 대기 상태의 메모리 페이지. 변경되지 않거나 외부 디스크로 플러시 된 데이터를 포함 캐시. 유효한 데이터를 보유하고 있지만, 경우에 따라서는 그대로 폐기될 가능성이 있다.
Modified: 변경된 상태의 메모리 페이지. 변경되는 데이터를 포함한 캐시이므로 삭제하기 전에 디스크로 내보내기가 필요
Modified no write: 변경된 이지만 디스크로 내보내기 불필요한 메모리 페이지
Transition: 다른 상태로 전환 중인 페이지


Zeroed: 제로 클리어 된 상태의 페이지. 보안을 위해 시스템은 초기 상태에서는 모든 페이지를 제로 취소
Free: 빈 페이지. 제로 클리어되지 않기 때문에, 사용 전에 취소해야 합니다.
Bad: 불량으로 말미암아 불량 상태라고 판단된 메모리 (시스템에 따라 실행 중에 잘못된 페이지를 검색하고, Bad 상태로 설정할 수)
세로부분입니다.
Process Private: 프로세스용 메모리
Mapped File: 파일 매핑 메모리. 파일은 메모리 공간에 매핑되어 이용되고 있다.
Shared Memory: 공유 메모리
Page Table: 가상 기억에 이용하는 페이지 테이블 데이터를 저장하기 위한 메모리
Paged Pool: 디스크에 페이지 아웃 할 수 있는 페이지

Rammap(램맵) 메모리 영역 맵Rammap(램맵) 메모리 영역 맵

Nonpaged Pool: 디스크에 페이징할 수 없는 페이지. 항상 메모리에 존재하고 있을 필요가 있다. 커널과 디바이스 드라이버 등으로 이용된다.
System PET: 시스템 용도로 이용되는 페이지 테이블 메모리. PTE는 페이지 테이블의 엔트리의 수
Session Private: 로그온 세션 용 메모리
Metafile:NTFS 메타 파일 용 메모리
AWE: 메모리 공간 확대에 대한 AWE 기능에서 사용되는 메모리
Driver Locked; 장치 드라이버를 사용할 록하고 있는 메모리
Kernel Stack: 커널 스택
Unused: 미사용 메모리
Rammap의 메모리 사용량 페이지 표시 항목
Windows OS의 관리하에 있는 메모리는 페이지라는 단위 (일반적으로 1페이지 = 4K bytes)로 분할되고 용도별로 할당되고 페이지당 사용량이 자원 모니터와 Rammap 도구 등으로 확인할 수가 있습니다.
메모리 영역 맵
Windows OS 시스템이 인식하는 실제 메모리 영역의 맵이 표시됩니다. 전체 메모리 공간이 세 가지 영역으로 나누어 인식되고 있으며 덧붙여서, 상단은 이른바 1Mbytes 다음의 메모리 영역 (기본 메모리), 두 번째는 4Gbytes 다음 영역에 있는 메모리 (이 직후부터 4Gbytes 사이까지 장치 공간), 세 번째는 4Gbytes 이상의 영역에 있는 메모리입니다.
메모리 영역의 시작 주소
메모리 영역의 종료 주소 +1
메모리 영역의 크기

Rammap(램맵) 메모리 정리Rammap(램맵) 메모리 정리

Empty 메뉴에 지정된 메모리 페이지 영역을 플래시 시키기 위한 기능이 준비되어 있습니다. 예를 들어 Modified Page List를 플래시 시키면 시스템은 수정된 데이터를 디스크에 기록하고 Modified 메모리 공간을 비우기(비우도록 노력한다 뿐이지 실제로는 예를 들어 System Working Set 영역을 완전히 비우는 것은 불가능하다.). Standby List를 플래시 시키면 (아무것도 내보낼 필요가 없어서) 즉시 대기 공간을 확보하고 여유 메모리 영역이 됩니다. End of Article
지정된 메모리 영역의 플래시

Rammap(램맵) File SummaryRammap(램맵) File Summary

Empty 메뉴를 사용하면 지정된 메모리 영역을 (가능한 한) 플래시 시키도록 합니다.
예를 들어 기록되지 않은 디스크 캐시를 (가능한 한 빨리) 플래시 하려면 해당 부분을 실행하면 됩니다.
메모리 최적화를 하고 싶으며 Empty->Empty Standby List를 눌러주면 됩니다. 그리고서 F5 새로 고침을 하시면 됩니다. 아니면 File Summary를 눌러서 직접 필요하지 않은 부분을 제거할 수가 있지만, 해당 부분은 자신이 해당 프로세스 등이 어떤 프로그램에서 사용되는지 알고 있을 때 사용을 하면 됩니다. 가장 능동적으로 해결 방법은 메모리 추가로 설치하는 것입니다. 물론 메인보드에서 얼마나 최대 지원을 할 수가 있는지 확인을 하고 진행을 하시길 바랍니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band