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


9

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

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

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


2
"비현실적인"성능 테스트의 요점은 무엇입니까? 현대 OS가 절대 허용하지 않는 것을 테스트하려고합니다.

불행히도, 그것은 전혀 비현실적이지 않으며, 오늘날 커널 aio가 작동하는 방식입니다. Mr.T는 비동기 I / O와 캐시가 상호 배타적 인 용어가 아님을 깨닫기를 바랍니다. 마이크로 소프트 직원들은 15 년 전에 이미 깨달았지만 (특히 비스타 이전의 성능은 특히 동시성에서 실망 스러울 수있다). 일부 인도 사람은 몇 년 전에 패치를 작성했지만 거절했습니다.

답변:


14

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

무료 페이지 캐시 :

echo 1 > /proc/sys/vm/drop_caches

무료 치열과 아이 노드 :

echo 2 > /proc/sys/vm/drop_caches

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

echo 3 > /proc/sys/vm/drop_caches

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


이 방법에 대해 들었습니다. 그러나 내 우분투 10.04에는 그러한 파일이 없습니다. 그래서 위의 명령을 실행하지 못했습니다.

@tom_cat : 2.6.16보다 새로운 커널이 필요하며 실수하지 않으면 Ubuntu 10.04에 2.6.32가 제공되므로 작동합니다. 방금 11.04 설치에서 가치가 있는지 확인했습니다.이 proc 항목이 있습니다 (불행히도 여기에 10.04는 없습니다)

@ 데이먼 : 네, 그렇습니다. 정말 고마워. 이전 커널의 원격 시스템에 로그온 한 것을 발견했습니다.

0

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

인사말, CK

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.