Ⅰ. 리눅스 시스템에서 캐시 메모리를 반환하는 이유
리눅스 시스템을 운영하다 보면 메모리 반환이 늦거나, 안될 때가 있습니다. 사용할 수 있는 실제 메모리가 줄어드면서 메모리 점유율이 높아지는 현상을 조치하기 위해서는 캐시 메모리를 반환하는 작업이 필요합니다.
캐시 메모리 반환을 하려면 주로 두 가지 방법을 사용합니다. 캐시 메모리는 파일 시스템 캐시 및 페이지 캐시로 나눠집니다. 파일 시스템 캐시는 디스크에서 읽은 파일 데이터를 저장하고 페이지 캐시는 프로세스의 가상 메모리 페이지를 저장합니다.
Ⅱ. 캐시 메모리 반환 방법
1. 페이지 캐시 비우기
페이지 캐시를 비우는 것은 주로 파일 I/O와 관련이 있습니다. 페이지 캐시를 비우면 프로세스의 페이지가 다시 필요할 때 다시 읽어와야 합니다. 이는 시스템에 부하를 일으킬 수 있으므로 주의해서 사용해야 합니다.
sh -c 'echo 1 > /proc/sys/vm/drop_caches' |
이 명령은 페이지 캐시를 비우기 위해 사용됩니다. drop_caches 파일의 값은 캐시를 지우는 여러 옵션을 나타내며, 여기서는 1을 사용하여 페이지 캐시를 비웁니다.
2. 버퍼 캐시 비우기
파일 시스템 캐시는 주로 버퍼 캐시로 알려져 있습니다. 파일 시스템 캐시를 비우려면 아래 명령어를 사용합니다.
sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches' |
이 명령은 페이지 캐시와 함께 버퍼 캐시도 비웁니다.
3. 페이지 캐시 및 버퍼 캐시 모두 비우기:
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches' |
이 명령은 페이지 캐시와 버퍼 캐시를 모두 비웁니다.
Ⅲ. 페이지 캐시(Page Cache) ?
1) 역할: 페이지 캐시는 주로 파일 데이터에 대한 캐시 역할을 합니다. 파일 시스템에서 읽은 데이터가 메모리에 저장되어 다음에 동일한 데이터에 대한 액세스가 발생할 때 디스크에서 다시 읽지 않아도 됩니다.
2) 동작 방식: 파일의 블록 단위로 데이터를 메모리에 캐시합니다. 따라서 파일에서 데이터를 읽거나 쓸 때 해당 데이터가 페이지 캐시에 로드되며, 메모리에 있는 데이터를 변경할 경우 변경 사항은 페이지 캐시에 저장됩니다. 변경된 내용은 언젠가 디스크에 반영될 수 있습니다.
Ⅳ. 버퍼 캐시(Buffer Cache) 란?
1) 역할: 버퍼 캐시는 주로 파일 시스템의 메타데이터에 대한 캐시 역할을 합니다. 예를 들어, 파일 시스템의 inode나 디렉터리 정보 등이 여기에 저장됩니다.
2) 동작 방식: 파일 시스템의 메타데이터 변경 또는 읽기 작업이 발생하면 해당 정보가 버퍼 캐시에 저장됩니다. 이렇게 함으로써 파일 시스템의 메타데이터에 대한 디스크 I/O를 줄이고 성능을 향상시킵니다.
'시스템(Linux)' 카테고리의 다른 글
RHEL 8, CentOS 8, Rocky 8 네트워크 설정 (0) | 2023.12.28 |
---|---|
리눅스 사용자 계정 전환(Switch User) 에 대해 알아보겠습니다. (0) | 2023.12.28 |
리눅스 접속 시 배너를 통한 경고문 (0) | 2023.12.22 |
logrotate 에 대해 알아보겠습니다. (1) | 2023.10.06 |
리눅스에서 CPU, MEMORY, 커널 정보 확인방법에 대해 알아보겠습니다. (0) | 2023.10.05 |