cache-bench – это Python скрипт, позволяющий оценить влияние настроек виртуальной памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих) на производительность выполнения задач, выполнение которых зависит от кэширования файловых операций чтения в условиях нехватки памяти. Код открыт под лицензией CC0.
Основной способ использования – считывание файлов из указанной директории в случайном порядке и их добавление в список, пока не будет считано заданное число мебибайт. Доступно два режима работы:
- Первый – вспомогательный – служит для создания директории заданного объёма. При этом в директории создаётся определённое число мебибайтных файлов со случайными именами.
- Второй режим – основной – режим чтения файлов из указанной директории в случайном порядке. Во время чтения растёт объем потребляемой скриптом памяти, а скорость считывания заданного объёма файлов зависит от объёма кэшированных файловых страниц.
Частью проекта также является вспомогательных скрипт drop-cache, который рекомендуется выполнять перед началом теста. В процессе работы скрипта в режиме чтения выводится общее время работы, средняя скорость чтения, имя последнего считанного файла. Скрипт также позволяет логировать результаты в файл с отметками времени.