읽기를 위해 Linux 페이지 캐시 비활성화

읽기를 위해 Linux 페이지 캐시 비활성화

Linux에서 읽기에 대한 페이지 캐싱을 끄는 방법이 있습니까? 더 구체적으로 말하자면, 내 프로세스가 디스크에서 직접 읽도록 하고 싶습니다.

내 문제의 설정: Postgres에서 새로운 쿼리 처리 기술을 시도하고 실행 시간을 측정하고 있습니다. 다양한 메서드의 실행 시간을 정확하게 비교하려면 OS 캐시에서 읽기를 꺼야 합니다.

나는 다음 접근법을 읽었지만 그 중 어느 것도 내 경우에 적용되지 않습니다.

  1. 다음을 사용하여 캐시 지우기 echo 1 > /proc/sys/vm/drop_caches: 최종 측정 시간을 엉망으로 만들 수 있는 쿼리를 반복할 때마다 이것을 호출해야 합니다.
  2. O_DIRECT프로그램 내에서 사용 : Postgres가 파일을 읽는 방법을 제어할 수 없습니다.
  3. 을 사용하여 내 장치를 마운트합니다 -o sync. 나는 읽었다여기쓰기 버퍼링이 꺼지는데 캐시 읽기도 비활성화되는지 확실하지 않습니까?
  4. 사용 hdparm -W 0 /dev/sda1: 다시 말하지만 쓰기용 캐시만 비활성화됩니다.
  5. 설명된 애플리케이션별 스크립트 사용여기: 단일 애플리케이션이 있으면 작동하지만 내 설정에는 Postgres 서버가 서비스(많은 스레드 포함)와 클라이언트로 있습니다. 100% 확신할 수는 없지만 Postgres와 같은 서비스가 아닌 일반 응용 프로그램에서 스크립트가 작동하는 것 같습니다.

관련 정보