DBMS와 가상 머신을 사용하여 몇 가지 벤치마크를 수행하고 있습니다. 이 명령을 사용하고 있습니다
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
실행 시간에 대한 캐싱/버퍼의 영향을 최소화하기 위해 쿼리를 실행하기 전에 각 게스트와 각 호스트에서 데이터가 캐시/버퍼링된 경우 쿼리 응답에 사용된 파일의 일부가 메모리에 있을 수 있으므로 쿼리 실행 시간은 이전에 실행된 쿼리에 따라 달라질 수 있습니다.
나는 다음 게시물을 보았습니다. Linux 시스템에서 버퍼와 캐시를 지우는 방법은 무엇입니까?
하지만 모든 쿼리 후에 캐시 동기화/삭제를 수행하는 것은 약간 까다롭습니다. 캐시를 동기화/삭제하려면 모든 가상 머신과 모든 물리적 서버가 필요합니다. 스크립트를 작성하고 SSH를 사용하여 이 작업을 수행할 수 있지만 OS가 파일을 버퍼링/캐싱하는 것을 방지하는 방법이 있는지 알고 싶습니다. 그렇게 하는 것이 더 쉬울 것입니다.
저는 모든 가상 머신(KVM 사용)과 서버에서 Ubuntu 12.04를 사용하고 있습니다.
답변1
다음과 같은 것을 사용하십시오https://code.google.com/p/linux-ftools/데이터베이스 시스템에서 사용하는 모든 파일을 FADV_DONTNEED로 표시하시겠습니까?