r-test - это Python скрипт, позволяющий оценить влияние настроек виртуальной памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих) на производительность выполнения задач, выполнение которых зависит от кэширования файловых операций в условиях нехватки памяти. Код открыт под лицензией CC0. Основной способ использования - считывание файлов из указанной директории в случайном порядке и их добавление в список, пока не будет считано заданное число мебибайт. Имеет два режима работы. Первый - вспомогательный - служит для создания директории заданного объема. При этом в директории создается заданное число мебибайтных файлов со случайными именами. Второй режим - основной - режим чтения файлов из указанной директории в случайном порядке. Во время чтения растет объем потребляемой скриптом памяти, а скорость считывания заданного объема файлов зависит от объема кэшированных файловых страниц. Частью проекта также является вспомогательных скрипт drop-cache, который рекомендуется выполнять перед началом теста. В процессе работы скрипта в режиме чтения выводится общее время работы, средняя скорость чтения, имя последнего считанного файла. Скрипт также позволяет логировать результаты в файл. Пример лога: 2021-05-30 21:47:56,084: mkdir testdir1 2021-05-30 21:47:56,211: written testdir1/0.9860985015646311; total size: 1M 2021-05-30 21:47:56,289: written testdir1/0.0691916965192153; total size: 2M 2021-05-30 21:47:56,377: written testdir1/0.27868153831296383; total size: 3M 2021-05-30 21:47:56,455: written testdir1/0.7341114648416274; total size: 4M 2021-05-30 21:47:56,533: written testdir1/0.5363495159203434; total size: 5M 2021-05-30 21:47:56,533: OK 2021-05-30 21:48:23,193: found 5 regular files in testdir1, total size: 5.0M 2021-05-30 21:48:23,199: setting self oom_score_adj=1000 2021-05-30 21:48:23,199: reading files from the directory testdir1 2021-05-30 21:48:23,229: read 1.0M (20.0%) in 0.0s (avg 32.9M/s); file 0.7341114648416274 2021-05-30 21:48:23,296: read 2.0M (40.0%) in 0.1s (avg 20.8M/s); file 0.0691916965192153 2021-05-30 21:48:23,298: read 3.0M (60.0%) in 0.1s (avg 30.3M/s); file 0.0691916965192153 2021-05-30 21:48:23,299: read 4.0M (80.0%) in 0.1s (avg 40.1M/s); file 0.7341114648416274 2021-05-30 21:48:23,352: read 5.0M (100.0%) in 0.2s (avg 32.6M/s); file 0.27868153831296383 2021-05-30 21:48:23,353: -- 2021-05-30 21:48:23,353: read 5.0M in 0.2s (avg 32.6M/s); src: 5 files, 5.0M 2021-05-30 21:48:23,354: OK
Ссылка:
https://www.linux.org.ru/news/opensource/16350636