페이지 캐시가 삭제되면 누가 해제하나요?

페이지 캐시가 삭제되면 누가 해제하나요?

내가 달릴 때

echo 1 > /proc/sys/vm/drop_caches

게다가 캐시된 메모리 블록이 지워졌습니다. 누가 해당 메모리를 공개했는지 어떻게 알 수 있나요? 아니면 더 이상 실행되지 않는 프로세스에서 메모리를 해제합니까?

답변1

echo 1 > /proc/sys/vm/drop_caches페이지 캐시를 해제합니다. 이는 디스크 블록의 내용을 포함하는 커널 메모리입니다. 이 메모리는 커널에 속합니다.

이것을 메모리를 "해제"하는 것으로 설명하는 것은 약간 오해의 소지가 있습니다. 메모리는 처음에 저장되지 않고 캐시입니다. 더 중요한 목적을 위해 메모리가 필요한 경우 캐시 페이지가 메모리에서 제거됩니다. 이는 보유되지 않기 때문에 가능합니다. 아무도 필요하지 않습니다.

이것콘텐츠캐시 항목은 여러 프로세스에 속할 수 있습니다. 메모리 페이지는 일반적으로 단일 프로세스에 속하지 않습니다. 예를 들어 페이지에 파일의 캐시된 페이지가 포함되어 있으면 해당 페이지는 파일을 연 모든 프로세스에 속한다고 말할 수 있습니다. 그러나 캐시 항목은 현재 파일이 열려 있는 프로세스가 없더라도 유용하기 때문에 전체 시스템에 속한다고 주장할 수도 있습니다.

캐시를 삭제하는 것은 I/O 벤치마킹을 위해 원래 캐시를 사용하는 것에만 거의 유용합니다. 디스크 캐시는 성능에 매우 중요하며 이를 제거하면 성능에 심각한 영향을 미칠 수 있습니다. 그런데 RAM에 캐시를 위한 충분한 공간이 남아 있지 않습니다.

관련 정보