| Переменная | Описание |
|---|---|
dirty_background_ratio | Объем свободной оперативной памяти, при котором демон pdflush начинает обратную запись незаписанных данных |
dirty_expire_centisecs | Время, в сотых долях секунды, в течение которого незаписанные данные могут оставаться в памяти, перед тем как демон pdflush не запишет их на диск при следующем периоде обратной записи |
dirty_ratio | Процент от общей оперативной памяти, соответствующий страницам памяти одного процесса, при котором начинается обратная запись незаписанных данных |
dirty_writeback_centisecs | Насколько часто, в сотых долях секунды, процесс bdflush возвращается к выполнению для обратной записи данных |
laptop_mode | Переменная булевого типа, которая включает или выключает режим ноутбука (см. следующий раздел) |
Код потока pdflush
mm/page-writeback.c и fs/fs-writeback.c.Режим ноутбука — это специальная политика обратной записи страниц с целью оптимизации использования батареи и продления срока ее работы. Это делается путем минимизации активности жестких дисков, чтобы они оставались в остановленном состоянии по возможности долго. Конфигурировать этот режим можно с помощью файла /proc/sys/vm/laptop_mode
В режиме ноутбука существует всего одно изменение в выполнении обратной записи страниц. В дополнение к обратной записи измененных страниц; памяти, когда они становятся достаточно старыми, демон pdflush
pdflush пользуется тем преимуществом, что диск уже запущен, а также он гарантирует, что в ближайшем будущем диск снова запущен не будет.Такое поведение имеет смысл, когда параметры dirty_expire_centisecs
dirty_writeback_centisecs установлены в большие значения, скажем 10 минут. При таких задержках обратной записи диск запускается не часто, а когда он все-таки запускается, то работа в режиме ноутбука гарантирует, что этот момент будет использован с максимальной эффективностью.Во многих поставках ОС Linux режим ноутбука автоматически включается и выключается, при этом также могут изменяться и другие параметры демона pbflush
Демоны bdflush
kupdatedВ ядрах серий до 2.6 работа потоков pdflush
bdflush и kupdated.Поток пространства ядра bdflush
pdflush. Демон bdflush возвращался к выполнению с помощью функции wakeup_bdflush(), когда количество свободной памяти становилось меньше этих пороговых значений.Между демонами bdflush
pdflush существует два главных отличия. Первое состоит в том, что демон bdflush был всего один, а количество потоков pdflush может меняться динамически. Об этом более подробно будет рассказано в следующем разделе. Второе отличие состоит в том, что демон bdflush работал с буферами, он записывал на диск измененные буферы. Демон pdflush работает со страницами, он записывает на диск целые измененные страницы памяти. Конечно, страницы памяти могут соответствовать буферам, но единицей ввода-вывода является целая страница памяти, а не один буфер. Это дает преимущество, поскольку работать со страницами памяти проще, чем с буферами, так как страница памяти — более общий и более часто используемый объект.