본문 바로가기

리눅스

[draft] 리눅스에서 메모리 캐시를 삭제하는 방법

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 캐시도 비웁니다.

728x90
  • 전체 메모리 캐시 삭제
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