Ядро Linux проверяет все ошибки, dirty_writeback_centisecs
если у вас есть грязные страницы старше, чем dirty_expire_centisecs
. С настройками по умолчанию он проверяет каждые 5 секунд на наличие грязных страниц старше 30 секунд.
Ядро также имеет грязный предел памяти. Когда этот предел достигнут, он блокирует каждый процесс записи, чтобы избежать слишком большого количества грязных страниц в оперативной памяти.
Что вы должны настроить это
vm.dirty_background_ratio
: объем системной памяти, который может быть заполнен грязными страницами до того, как ядро начнет сбрасываться на диск в фоновом режиме.vm.dirty_ratio
: максимальная системная память, которую можно заполнить грязными страницами. Затем ядро блокирует все запросы ввода / вывода, пока все не будет сброшено на диск.
Чтобы не получить такое поведение, вы должны сообщить ядру, что оно должно содержать не менее 30 с * 6 МБ / с = 180 МБ. Вам также необходимо учитывать медленную скорость записи Raspberry Pi, поскольку в течение времени, необходимого для записи на диск, в ОЗУ будет записываться больше грязных страниц.
Это может представлять слишком много оперативной памяти для Raspberry Pi, поэтому вам может потребоваться уменьшить ее dirty_expire_centisecs
. Имейте в виду, что использование малых значений может повредить быстродействию системы, поскольку вы почти получите синхронный ввод-вывод.
Вот более полное объяснение того, как это работает: https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/