drop_caches가 캐시를 삭제하지 않나요?

drop_caches가 캐시를 삭제하지 않나요?

때때로 스왑 파일이 평소보다 약간 더 크다는 것을 발견했습니다. 나는 시도했지만 sync && echo 3 > /proc/sys/vm/drop_caches성공하지 못했습니다. 그런데 막상 해보면 시간 swapoff -a은 더 걸리고 나중에는 스왑 파일이 작아집니다. 스왑 파일을 사용하지 않고 지우는 방법은 무엇입니까 swapoff?

답변1

3 > drop_caches모든 캐시된 데이터(더 이상 필요하지 않은 데이터)를 삭제하도록 커널에 지시합니다.

swapoff현재 스왑에 있는 가능한 많은 데이터를 메모리로 다시 가져오려고 노력합니다. 또한 스왑 파일에서 메모리로 들어오는 콘텐츠를 위한 공간을 확보하기 위해 캐시된 일부 페이지의 삭제를 트리거할 수도 있습니다.

실제로 이 작업을 수행할 필요가 있는 경우는 거의 없으며 커널은 어떤 데이터로 무엇을 할지 결정하는 작업을 꽤 잘 수행합니다(예: 대용량 파일로 작업하는 경우 해당 파일을 캐시하고 다른 실행 중인 프로세스에 할당된 메모리를 스왑할 수 있음). ).

실제로 스왑 파일 자체(예: 일반 파일 시스템의 파일)를 사용하고 있는지 아니면 출력을 잘못 해석했는지는 확실하지 않지만 free, 그렇게 한다면 전용 스왑 파티션이 정말 유용할 것입니다. 가능한 파일 시스템 오버헤드가 발생하지 않습니다(물론 공간은 커널 사용을 위해 예약되어 있습니다).

그런데 여기에 저장된 모든 파일 은 다음을 사용 tmpfs하면 "캐시"로 표시됩니다./dev/shm/runfree

관련 정보