ZFS ARC 스래싱 문제 해결 방법 | 시스템 성능 최적화
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

ZFS ARC thrashing 현상 대응 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 시스템 관리자, 고성능 서버 운영자
  • 중급~고급 레벨의 시스템 성능 최적화 지식 필요

핵심 요약

  • ARC 스래싱 정의 : 캐시 히트 실패 → arc_evict 스레드 CPU 점유율 90% 이상으로 인한 성능 저하 현상
  • 진단 지표 : iowait 20% 이상, system mode CPU 사용률 증가, 캐시 히트율 저하
  • 해결 방안 : echo 3 > /proc/sys/vm/drop_caches 명령어로 캐시 강제 제거zfs_arc_max 조정 또는 메모리 확장

섹션별 세부 요약

1. ARC 스래싱 정의

  • 캐시 교체(Eviction) 과다 → 시스템 성능 저하
  • 고성능 I/O 환경(데이터베이스 서버)에서 서비스 장애 유발 가능성
  • 비파괴적 특징: 디스크 미반영 데이터(dirty item)는 유지

2. 주요 증상 및 진단 지표

  • arc_prune/arc_evict 스레드 CPU 사용률 90% 이상
  • iowait 지속 20% 이상, system mode CPU 사용률 증가
  • 캐시 히트율 저하 → 평상시 데이터 대비 비교 필요

3. 대응 방법

  • 명령어 : echo 3 > /proc/sys/vm/drop_caches페이지 캐시 및 slab 객체 제거
  • 효과 : 실행 직후 일시적 성능 저하 발생 → 캐시 재채우기 전까지
  • 주의사항 : zfs_arc_max 기본값(메모리 1/2)은 다른 애플리케이션과 경쟁 유발 가능

4. 근본적 해결 방안

  • zfs_arc_max 값 줄이기 → 메모리 경쟁 방지
  • 물리적 메모리 확장(Scale-up) → 가장 확실한 해결책
  • 워크로드에 맞는 ARC 크기 조정 필요

결론

  • 즉시 대응 : echo 3 > /proc/sys/vm/drop_caches 명령어 실행 후 zfs_arc_max 재조정
  • 장기적 전략 : 메모리 확장 + 워크로드 기반 ARC 크기 최적화
  • 모니터링 필수 : iowait, system mode CPU 사용률, 캐시 히트율 지속 추적