# ZFS ARC thrashing 현상 대응 방법

> Clean Markdown view of GeekNews topic #21742. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=21742](https://news.hada.io/topic?id=21742)
- GeekNews Markdown: [https://news.hada.io/topic/21742.md](https://news.hada.io/topic/21742.md)
- Type: news
- Author: [computerphilosopher](https://news.hada.io/@computerphilosopher)
- Published: 2025-06-30T13:18:24+09:00
- Updated: 2025-06-30T13:18:24+09:00
- Original source: [velog.io](https://velog.io/@skynet/ZFS-ARC-thrashing-%ED%98%84%EC%83%81-%EB%8C%80%EC%9D%91-%EB%B0%A9%EB%B2%95)
- Points: 4
- Comments: 0

## Topic Body

#### 1. 개요  
- ZFS 파일시스템의 캐시(ARC)에서 발생하는 스래싱 현상에 대한 정의, 진단, 대응 및 예방 방안 정리  
  
#### 2. ZFS ARC 스래싱 정의  
- **개념**: 캐시 히트(Hit) 연속 실패로 인해 잦은 캐시 아이템 교체(Eviction)가 발생, 시스템 성능이 오히려 저하되는 현상  
- **영향**: 고성능 I/O 환경(예: 데이터베이스 서버)에서 심각한 서비스 장애 유발 가능  
  
#### 3. 주요 진단 증상  
- CPU `iowait` 수치 20% 이상 지속  
- CPU `system mode` 사용률 평소 대비 증가  
- 캐시 히트율(Hit rate) 저하 (평상시 데이터와 비교 필요)  
- **핵심 증상**: `arc_prune`, `arc_evict` 커널 스레드의 CPU 점유율 90% 이상 시 스래싱 확실  
  
#### 4. 긴급 대응 방안  
- **조치**: 리눅스 파일시스템 캐시 수동 제거  
- **명령어**: `echo 3 > /proc/sys/vm/drop_caches`  
- **효과**: 페이지 캐시 및 slab 객체를 함께 제거  
- **특징**:  
    - 디스크에 미반영된 데이터(dirty item)는 유지되므로 데이터 손실 없음 (비파괴적)  
    - 실행 직후 캐시가 다시 채워지기 전까지 일시적 성능 저하 발생  
  
#### 5. 근본적인 예방  
- **원인**: 시스템 워크로드에 비해 할당된 ARC 캐시 크기가 부족하기 때문  
- **ARC 크기 (`zfs_arc_max`)**:  
    - 기본값이 이미 시스템 메모리의 1/2(Linux 기준)로 매우 큼  
    - 다른 애플리케이션과 메모리 경쟁을 유발할 수 있어 무작정 늘리기 어려움  
- **해결 방안**:  
    - 다른 애플리케이션의 메모리 사용량이 높은 경우, `zfs_arc_max` 값을 줄여 경쟁 방지  
    - 근본적인 문제 해결을 위해서는 물리적 메모리 증설(Scale-up)이 가장 확실한 방법

## Comments



_No public comments on this page._
