Windows에서 메모리 사용 상태를 확인하는 방법은 여러 가지가 있다.
1. 작업 관리자(Task Manager)
- 전체적인 메모리 사용량을 빠르게 확인 가능
- 현재 사용률, 사용중 메모리, 캐시 메모리 정도만 확인 가능
- 세부적인 메모리 상태 분석에는 부족
2. 성능 모니터(Performance Monitor)
- 시스템 성능을 카운터 기반으로 장기 모니터링 가능
- CPU, Memory, Disk 등 세부 지표 수집 가능
- 하지만 실시간 메모리 구조를 직관적으로 보기 어려움
3. 리소스 모니터(Resource Monitor)
- 프로세스 단위 메모리 사용 상태 확인 가능
- 물리 메모리 상태(사용중, 대기, 수정됨 등) 확인 가능
- 메모리 문제 분석 시 가장 많이 사용됨
리소스 모니터에서 메모리 상태 확인
1) 리소스 모니터 [메모리] 탭 클릭
* 리소스 모니터 실행 방법
작업 관리자 → 성능 탭 → 리소스 모니터 열기
또는
Win + R
resmon 입력

2) 메모리 상태 영역
[ 프로세스 메모리 항목 ]

커밋 (Commit)
작업 집합 (Working Set)
공유 가능 (Shareable)
개인 (Private)
1. 커밋(KB) = Commit Size = Private Bytes
Commit (Private Bytes)
├ RAM (Working Set Private)
└ Page File
- 해당 프로세스가 운영체제에 할당을 요청한 메모리 크기
특징
- RAM 또는 Page File 중 하나에 반드시 저장될 것이 보장됨
- 프로세스가 독점적으로 사용하는 메모리
- 다른 프로세스와 공유되지 않음
malloc
new
Heap
Stack
2. 작업 집합(KB) = Working Set
작업 집합 (Working Set)
├ 공유 가능 (Shareable)
└ 개인 (Private)
Working Set = Shareable + Private
- 현재 RAM에 실제로 올라와 있는 메모리를 의미
- 포함되는 것
프로그램 코드
DLL
Heap
Stack
공유 메모리
3. 공유 가능(KB) = Shareable Working Set
공유 가능 메모리는
다른 프로세스와 공유될 수 있는 Working Set 메모리
대표적인 예
DLL
공유 라이브러리
메모리 매핑 파일
4. 개인(KB) = Private Working Set
개인 메모리는
해당 프로세스만 사용하는 Working Set
즉
RAM에 올라온 Private Bytes
예
Heap
Stack
프로세스 전용 데이터
>>> 다른 프로세스는 접근하지 못한다.
< 리소스 모니터 메모리 구조 >
Commit (Private Bytes)
│
│
┌───────────────┴───────────────┐
│ │
RAM (Working Set) Page File
│
│
┌────┴────┐
│ │
Shareable Private
(DLL) (Heap, Stack)
[ 물리 메모리 ]
- 리소스 모니터 하단에는 현재 RAM이 어떤 상태로 사용되는지 표시된다.

- 하드웨어 예약 (Hardware Reserved)
- 물리적인 메모리의 주소공간.
- 하드웨어 장치가 사용하는 메모리
- BIOS, GPU, PCI 장치 등이 사용
- OS에서 사용할 수 없는 메모리
- 사용 중 (In Use)
- 현재 사용중인 메모리 페이지의 총 합계.
- 메모리가 부족해지면 사용 빈도가 낮은 페이지는 디스크로 이동(Swap Out)
- 수정됨 (Modified)
- 데이터가 변경되었지만 아직 디스크에 저장되지 않은 메모리
RAM에서 수정됨
→ 디스크에는 아직 반영 안됨
- 이 메모리는 바로 다른 용도로 사용할 수 없고 디스크에 기록된 후 재사용 가능
- 대기 모드 (Standby)
- 지금 당장 사용되지 않지만 캐시로 보관된 메모리.
- 요청이 있는 경우 사용되지만, 요청이 없으면 그대로 폐기되는 대기 상태를 말함.
- 파일 읽기 캐쉬나 프로그램 코드 캐쉬 등 해당
필요하면 즉시 사용 가능
여유 메모리가 부족하면
→ Standby 메모리를 먼저 회수
- 여유(Free)
- 어떤 용도로도 사용하지 않는 자유로운 메모리 영역.
- 어떤 프로그램도 사용하지 않는 상태이며 새로운 메모리 요청이 발생하면 가장 먼저 사용됨
- 메모리 확보 순서
1. Free
2. Standby
3. Modified
4. In Use → Swap Out
[ 그래프 영역 ]

- 사용된 실제 메모리 (Used Physical Memory)
- 현재 물리 RAM에서 실제로 사용 중인 메모리.
- 사용중이라고 하는 것은 하드웨어적으로 예약이 완료된 것과 사용중, 변경이 끝난 상태를 포함한 것.
- 다음 항목을 포함
In Use
Modified
Hardware Reserved
- 그래프가 거의 가득 차 있다면 → 물리 메모리 여유가 적은 상태
- 할당된 메모리 (Committed)
- 프로세스들이 OS에 요청한 총 메모리 크기.(물리 메모리 크기 + 페이지 파일 크기)
- 물리적인 메모리 크기를 넘으면 물리적인 메모리가 부족하게 되어 가상영역에 의한 스왑아웃이 발생
Committed = RAM + Page File
- 페이지 폴트/초 (Page Faults/sec)
- 가상기억에 있어서의 페이지 폴트의 횟수. (페이지 폴트: 프로세스가 요청한 메모리가 현재 RAM에 없을 때 발생하는 이벤트)
- 프로세스가 필요한 메모리를 RAM에서 찾지 못했을 때 발생.
- 페이지 폴트 종류
1) Soft Page Fault - 디스크 접근 없음
Standby 캐시에 존재
다른 프로세스 메모리 공유
>>> 속도 영향 거의 없음
2) Hard Page Fault- 디스크 접근 발생
RAM에 없음
→ Page File 또는 디스크에서 읽음
>>> 이 경우 성능 저하 발생
수십/sec → 정상
수백/sec → 메모리 압박
수천/sec → 심각한 메모리 부족
[ 메모리 부족 판단 기준 ]
다음 3가지가 동시에 나타나면 메모리 부족 가능성 높음
1. Committed 값이 RAM에 근접
2. Hard Page Fault 증가
3. Standby + Free 메모리 거의 없음
>>> 이 경우 시스템은 디스크 기반 가상 메모리를 계속 사용하게 되어 성능이 크게 저하될 수 있다.
중요한 포인트
Windows에서는
Free 메모리가 많다고 좋은 것이 아님
왜냐하면
남는 메모리는 대부분 Cache로 사용됨
그래서 정상적인 시스템은
Free는 적고
Standby가 많다
>>> Standby 메모리는 필요할 때 즉시 다른 프로그램이 사용할 수 있기 때문
'SetUp' 카테고리의 다른 글
| 성능 수집기로 프로세스 메모리 사용량 기록하기 (0) | 2026.03.03 |
|---|---|
| Visual Studio 단축키 (0) | 2026.01.22 |
| OutLook 이메일 생성 (0) | 2026.01.13 |
| git 사용자 정보 등록 (0) | 2026.01.13 |
| [Win] Git 설치 및 환경설정 (0) | 2026.01.13 |