가상메모리 상태와 스왑영역 사용량 확인하기(with 맥북)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
- *시스템 관리자, 개발자, DevOps 엔지니어**
- 난이도: 중급 (운영체제 메모리 관리, 디스크 I/O, 보안 프로토콜 이해 필요)
핵심 요약
- 메모리 스와핑은 RAM 부족 시 자주 사용되지 않는 메모리 페이지를 디스크의 스왑 영역으로 이동하는 기법이다.
- 스왑 영역(Swap Space)은 HDD/SSD 상의 일시적 데이터 저장 공간으로, 프로세스 실행을 유지하는 데 필수적이다.
- 과도한 스왑 사용은 성능 저하와 서버 다운 위험을 초래하며, OOM Killer가 메모리 과부하 프로세스를 강제 종료할 수 있다.
섹션별 세부 요약
1. 메모리 스와핑의 정의 및 원리
- 스와핑은 RAM을 최적화하기 위해 불필요한 페이지를 디스크로 이동(swap out)하고, 필요 시 다시 불러오기(swap in)하는 기법이다.
- 현대 OS(예: macOS)는 페이지 단위 스와핑을 사용하며, 압축 메모리 → 스왑 순서로 처리된다.
- 스왑 영역은 보조기억장치(HDD/SSD) 상의 공간으로, RAM 부족 시 프로세스 실행을 유지하는 데 사용된다.
2. 메모리 페이지 상태 및 지표
- Pages active : 최근 사용된 데이터, Pages inactive : 잠재적으로 재사용 가능한 데이터.
- Pages speculative : 프리페치(prefetch)된 데이터로, 필요 없으면 삭제됨.
- Pages throttled : 디스크 I/O 제한으로 인해 처리 대기 중인 페이지.
- Pages wired down : 커널/드라이버가 고정한 메모리(해제 불가).
- Pages purgeable : 캐시 데이터(필요 시 삭제 가능).
3. 스왑 공간의 성능 영향 및 관리
- 스왑은 RAM 사용 최적화에 도움이 되지만, 디스크 접근 지연으로 성능 저하 원인이 될 수 있다.
- Pages reactivated : inactive → active로 이동한 페이지 수, Pages purged : 삭제된 purgeable 페이지 수.
- 서버 운영 시 스왑 사용률 관리가 필수이며, 과도한 사용 시 서버 다운 위험.
4. 클라우드 환경 및 OOM Killer
- AWS/GCP 등 클라우드에서는 메모리 제한(limit) 설정을 통해 OOM Killer 활성화를 방지할 수 있다.
- OOM Killer는 메모리 과부하 프로세스를 강제 종료하여 시스템 안정성을 유지.
- macOS는 스왑 데이터 암호화(encrypted)를 적용해 보안 강화.
결론
- 메모리 사용량 모니터링 및 스왑 영역 사용률 관리가 필수이며, 디스크 I/O 최적화와 메모리 제한 설정을 통해 성능 저하를 방지해야 한다.
- Pages free, Pageouts, Swapouts 등 주요 지표를 주기적으로 점검하고, 클라우드 환경에서는 컨테이너/VM 단위 제한을 설정할 것.