Отключить буферизацию / кеширование для файла


1

Я выполняю некоторые тесты с использованием СУБД и виртуальных машин. И я использую эту команду

free && sync && echo 3 > /proc/sys/vm/drop_caches && free

на каждом госте и на каждом хосте перед выполнением запроса, чтобы минимизировать влияние кэширования / буферизации на мое время выполнения. Если данные кэшируются / буферизируются, время выполнения запроса может варьироваться в зависимости от того, какой запрос был выполнен ранее, поскольку часть файла, используемая для ответа на запрос, может находиться в памяти.

Я хотел бы автоматизировать процесс (я делаю это вручную), но немного сложнее выполнять кеширование синхронизации / отбрасывания после каждого запроса. Мне нужно попросить каждую виртуальную машину и каждый физический сервер синхронизировать / отбросить кэши. Я мог бы написать скрипт и использовать для этого SSH, но мне интересно, есть ли способ не дать ОС буферизовать / кэшировать файлы.

Я также нашел этот инструмент: https://github.com/Feh/nocache

Но это требует, чтобы я выполнил это вместе с программой, которая не может использовать кеш. У меня есть распределенная DMBS, работающая в среде виртуальной машины, поэтому не совсем понятно, как ее использовать в моем случае. Я использую команду для инициализации каждого экземпляра на каждом сервере, и они находятся на вершине виртуальной машины.

П.С .: Я использую Ubuntu 12.04 на всех виртуальных машинах (используя KVM) и серверах.


На хостов это довольно просто: установите KVM, чтобы не использовать кэширование на дисковых файлах!
Eugen Rieck

Спасибо, Евгений Рик. Не могли бы вы сказать мне, как я могу это сделать? Или, по крайней мере, указать мне на какой-то материал?
user3158384

положил cache=none в домен XML, что-то вроде <disk type='file' device='disk'><driver name='..' cache='none'> ...
Eugen Rieck
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.