[Linux] 서버 캐시 정리 명령어

2024. 12. 21. 00:23·개발 (Development)/Linux

Linux 서버의 캐시 정리 명령어: sync && echo 3 > /proc/sys/vm/drop_caches

Linux 시스템에서는 메모리 관리를 위해 캐시와 버퍼를 활용합니다. 하지만, 특정 상황에서는 메모리 캐시를 수동으로 정리해야 할 필요가 있을 수 있습니다. 이를 위해 사용하는 명령어가 sync && echo 3 > /proc/sys/vm/drop_caches입니다. 이 문서에서는 해당 명령어의 동작 원리와 사용 방법을 설명합니다.

명령어 구성

1. sync

sync 명령어는 디스크에 남아 있는 데이터를 강제로 쓰도록 합니다. 이는 데이터 손실을 방지하기 위한 과정으로, 캐시 정리 전에 수행하는 것이 좋습니다.

  • 역할: 버퍼 캐시에 남아 있는 변경 사항을 디스크로 플러시합니다.
  • 사용 예:
  • sync

2. echo 3 > /proc/sys/vm/drop_caches

이 명령어는 캐시 메모리를 정리합니다. /proc/sys/vm/drop_caches 파일에 값을 쓰면 커널이 캐시 메모리를 정리합니다.

/proc/sys/vm/drop_caches에 입력할 값

  • 1: 페이지 캐시(page cache) 삭제
  • 2: dentry와 inode 캐시 삭제
  • 3: 페이지 캐시, dentry, inode 캐시 모두 삭제
  • 사용 예:
  • echo 3 > /proc/sys/vm/drop_caches

결합 명령어

위 두 명령어를 결합하여 실행합니다.

sync && echo 3 > /proc/sys/vm/drop_caches

주의사항

  1. 루트 권한 필요:
    echo 3 > /proc/sys/vm/drop_caches는 /proc 파일 시스템에 접근하기 때문에 루트 권한이 필요합니다. 명령어 앞에 sudo를 추가해야 할 수 있습니다.
  2. sudo sync && sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
  3. 시스템 성능에 영향:
    캐시를 정리하면 성능이 일시적으로 저하될 수 있습니다. 정리된 캐시를 다시 로드하는 데 시간이 걸리기 때문입니다.
  4. 데이터 손실 방지:
    캐시 정리 전에 반드시 sync를 실행하여 모든 데이터를 디스크에 기록하십시오.

사용 사례

  1. 메모리 확보:
    테스트 환경에서 메모리를 정리하여 반복적인 작업 간 메모리 상태를 초기화할 때 유용합니다.
  2. 시스템 디버깅:
    메모리 캐시가 성능 문제를 유발하는지 확인하기 위해 사용합니다.
  3. 개발 및 테스트 환경:
    실험적으로 메모리 사용량을 조절하거나 캐시를 초기화해야 할 때 사용합니다.

대안

캐시 정리 명령어를 수동으로 실행하는 대신, 다음 방법을 고려할 수 있습니다:

  1. sysctl 사용:
    /etc/sysctl.conf 파일에 설정을 추가하여 캐시 관리를 자동화합니다.
  2. crontab 사용:
    주기적으로 캐시를 정리해야 한다면 cron 작업으로 스케줄링할 수 있습니다.

결론

sync && echo 3 > /proc/sys/vm/drop_caches 명령어는 캐시를 정리하여 메모리 상태를 초기화하거나 문제를 디버깅하는 데 유용합니다. 하지만, 실사용 환경에서는 주의해서 사용해야 하며, 필요한 경우에만 실행하는 것이 좋습니다.
메모리 현황은 free -h 명령어로 확인할 수 있습니다.

반응형

'개발 (Development) > Linux' 카테고리의 다른 글

[Linux/Ubuntu] Ubuntu 서버 LVM 루트 디스크 용량 부족 문제 해결  (1) 2025.06.01
[Linux] 서버 Memory Swap 사용량  (1) 2025.02.17
[Linux] ll 명령어 완벽 가이드  (0) 2025.02.17
[Linux/Ubuntu 20.04 LTS] 부팅할 때 특정 파일을 실행  (0) 2024.05.07
[Linux/Ubuntu 20.04 LTS] Wired Network 사라지는 경우  (0) 2024.05.07
'개발 (Development)/Linux' 카테고리의 다른 글
  • [Linux] 서버 Memory Swap 사용량
  • [Linux] ll 명령어 완벽 가이드
  • [Linux/Ubuntu 20.04 LTS] 부팅할 때 특정 파일을 실행
  • [Linux/Ubuntu 20.04 LTS] Wired Network 사라지는 경우
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • 개발 (Development) (171) N
        • Algorithm (1)
        • Angular (1)
        • AWS (7)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (36)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (34) N
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    deepseek
    PostgreSQL
    Linux
    리눅스 마스터 2급 2차
    AWS
    Vue.js
    pandas
    javascript
    python
    리눅스 마스터 2급
    오답노트
    MyBatis
    ADsP
    JPA
    자바
    Kafka
    docker
    백준온라인저지
    springboot
    백준자바
    Linux master
    timescaledb
    백준
    데이터분석
    java
    Kubernetes
    DevOps
    파이썬
    백준알고리즘
    JSON
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Linux] 서버 캐시 정리 명령어
상단으로

티스토리툴바