Я создаю приложение поверх гипервизора KVM, где я получаю (тысячу раз) небольшую базу данных (3 мб), вызывая непосредственно функции ядра VFS Linux.Есть ли механизм кеширования при непосредственном использовании функций Linux VFS?
После создания стабильного прототипа моего приложения я хочу оптимизировать его доступ к базе данных (добавив кэш, например). Я знаю, что, выполняя файловые операции из пользовательского пространства, Linux использует кеш-страница для ускорения приложения, верно ли это также при использовании функций VFS из пространства ядра?
Я чувствую, что чтение файла базы данных много раз делает мое приложение медленным, чтение всего этого на одном и выполнение моих вычислений занимает намного меньше времени. Есть ли необходимость проверять, что мое приложение кэширует (или нет) кеш каждый раз, когда он читает файл? –
Хм, интересно, есть способы отбросить хотя бы некоторые кеши, написав материал в/proc, но пытаться делать тесты с доступом после недействительности или не звучать немного неудобно, ваша проблема не та, что я непосредственно как таковой имел перед лицом. Вы посмотрели на «perf», это отличный инструмент и позволяет вам переходить в ядро и что он делает, но он работает с помощью выборки, поэтому он имеет ограничения. Хорошо для того, чтобы помочь найти, где время тратится, хотя ... Может или не поможет вам в этом, независимо от того, является ли это проблемой кеша FS. Местный кеш приложения всегда будет быстрее всего. – Michael
Я посмотрю инструмент «perf», спасибо за ваш ответ :) –