토픽 53 / 111·메모리 계층 (Memory Hierarchy)
스레싱 (Thrashing)
스레싱 (Thrashing)
프로세스가 실행보다 페이지 교체에 더 많은 시간을 소비하는 현상으로, 다중 프로그래밍 정도가 과도하게 높아져 물리 메모리가 부족할 때 발생하는 심각한 성능 저하 상태
목적: 스레싱 원인 이해 및 방지 기법 적용을 통한 시스템 안정성 확보
특징: CPU 이용률 급락, 페이지 폴트 급증, 디스크 I/O 폭증, 처리량(Throughput) 급감
발생 원인
- •다중 프로그래밍 정도 과다: 프로세스 수 증가 → 프로세스당 프레임 수 감소
- •워킹 셋 초과: 프로세스의 워킹 셋 합이 물리 메모리 초과
- •부적절한 페이지 교체: 곧 사용할 페이지를 교체 → 즉시 폴트 재발생
- •지역성 부재: 광범위한 메모리 접근 패턴
발생 과정: ① 다중 프로그래밍 증가 → ② 프로세스당 프레임 부족 → ③ 페이지 폴트 급증 → ④ 디스크 I/O 대기 → ⑤ CPU 유휴 → ⑥ OS가 프로세스 추가 투입 → ⑦ 악순환 반복
해결 기법
- •워킹 셋 모델(Working Set Model): 프로세스별 워킹 셋 크기 추적, 워킹 셋 합 > 물리 메모리 시 프로세스 스왑 아웃
- •PFF(Page Fault Frequency): 페이지 폴트율 모니터링, 상한 초과 시 프레임 할당, 하한 미달 시 프레임 회수
- •다중 프로그래밍 정도 제어: 프로세스 수 제한, 부하 조절(Load Control)
- •지역성 활용: 프로그램의 지역성 개선(배열 접근 순서 등), 적절한 데이터 구조 선택
- •프로세스 스왑: 일부 프로세스를 디스크로 스왑 아웃, 나머지 프로세스에 충분한 프레임 확보
장점: 방지 기법 적용 시 시스템 안정성·처리량 유지
단점: 워킹 셋 추적 오버헤드, 스왑 시 응답 시간 증가
적용사례: 서버 과부하 상황, VM 메모리 오버커밋, 대규모 데이터 처리
비교: 스레싱(메모리부족/폴트급증/CPU유휴) vs 정상 페이징(적정 프레임/낮은 폴트율/CPU활용)
연관: 가상 메모리, 페이지 교체 알고리즘, 워킹 셋, 다중 프로그래밍, 지역성