본문 바로가기

리눅스

리눅스에서 메모리 캐시를 삭제하는 방법(cache flush)

728x90

리눅스에서 메모리 캐시를 삭제하는 방법(cache flush)

Linux에서 메모리 캐시를 수동으로 삭제하는 것은 일반적으로 권장되지 않습니다. 메모리 캐시는 시스템 성능을 최적화하고 응용 프로그램의 실행을 가속화하는 데 도움을 주기 때문입니다. 그러나 특정 상황에서 메모리 캐시를 명시적으로 삭제해야 하는 경우가 있을 수 있습니다. 이를 수행하기 위한 몇 가지 방법이 있습니다.

 

참고: 메모리 캐시를 무분별하게 삭제하면 시스템 성능에 부정적인 영향을 미칠 수 있으므로 주의해서 사용해야 합니다.

1. 메모리 캐시를 비워주는 명령어

sync 명령을 사용하여 디스크에 쓰기 작업을 수행한 후 메모리 캐시를 비울 수 있습니다.

sync

2. 메모리 캐시를 삭제하는 방법

메모리 캐시를 수동으로 삭제하려면 /proc 파일 시스템을 사용할 수 있습니다. 이것은 비권장되는 방법이며 주의가 필요합니다.

 

  • 메모리 캐시 삭제
echo 1 > /proc/sys/vm/drop_caches

(또는)

sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches

위 명령은 페이지 캐시만 비웁니다. 페이지 캐시와 관련된 메모리 페이지를 삭제합니다.

 

  • dentries와 inodes 삭제
echo 2 > /proc/sys/vm/drop_caches

(또는)

sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches
$ free -g
              total        used        free      shared  buff/cache   available
Mem:             30           0          18           0          11          29
Swap:             0           0           0

위 명령은 dentries 및 inodes 캐시도 비웁니다.

 

  • 전체 메모리 캐시 삭제
echo 3 > /proc/sys/vm/drop_caches

(또는)

sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
$ free -g
              total        used        free      shared  buff/cache   available
Mem:             30           0          29           0           0          29
Swap:             0           0           0

위 명령은 페이지 캐시, dentries 및 inodes를 모두 비웁니다.

 

이 명령들은 /proc/sys/vm/drop_caches 파일에 특정 값을 기록하여 작동합니다. 값 1은 페이지 캐시를 해제하고, 값 2는 dentry와 inode를 해제하며, 값 3은 페이지 캐시, dentry, inode를 모두 해제합니다. sync 명령은 캐시를 해제하기 전에 모든 보류 중인 디스크 쓰기 작업이 완료되도록 보장합니다.

 

메모리 캐시를 삭제하면 다음과 같은 효과가 있습니다.

  • 메모리 사용량이 감소합니다.
  • 디스크 I/O가 증가합니다.
  • 성능이 향상될 수 있습니다.

메모리 캐시를 삭제하는 이유는 다음과 같습니다.

  • 메모리 부족으로 인해 시스템이 느려질 때
  • 디스크 I/O를 줄여 성능을 향상시키고자 할 때
  • 특정 파일이나 디렉토리에 대한 캐시를 삭제하고자 할 때

메모리 캐시를 삭제하는 것은 시스템에 부하를 줄 수 있으므로 주의해서 사용해야 합니다.

 

주의할 점은 메모리 캐시를 해제하는 것이 시스템 성능에 영향을 줄 수 있으며, 특별한 필요가 없는 경우에는 권장되지 않습니다. 리눅스 커널은 메모리 캐시를 효율적으로 관리하며, 시스템의 요구에 따라 자동으로 조절됩니다.

 

참고URL

- LinuxMM : Drop_Caches

 

728x90