리눅스에서 filesytem의 캐시를 완전히 지우는 방법? 캐시 /

성능 테스트에서 Linux 시스템의 캐시 (페이지 캐시 / 노드 캐시 등)의 영향을 무시하고 싶습니다.

O_DIRECT 플래그를 시도했지만 직접 I / O가 여전히 일부 캐시의 영향을 “즐길”것으로 판명되었습니다.

시스템 캐시의 영향을 완전히 없애는 방법이 있습니까?



답변

(실제로 떨어집니다.) sync먼저 실행 한 다음

무료 페이지 캐시 :

echo 1 > /proc/sys/vm/drop_caches

무료 치열과 아이 노드 :

echo 2 > /proc/sys/vm/drop_caches

무료 페이지 캐시, 덴 트리 및 아이 노드 :

echo 3 > /proc/sys/vm/drop_caches

그러면 클린 캐시로 시작할 수 있지만 캐싱은 여전히 ​​작동합니다.


답변

아니요, 캐시를 무시할 수 없습니다. 그러나 추가 시스템 호출 fsync (3)를 사용하여 파일 시스템 동기화 (캐시를 지우고 디스크에 데이터 쓰기)를 강제 실행할 수 있습니다.

인사말, CK


답변