Skip to content

Latest commit

 

History

History
13 lines (10 loc) · 2.67 KB

Демон подкачки ядра (kswapd).md

File metadata and controls

13 lines (10 loc) · 2.67 KB

The Kernel Swap Daemon (kswapd)

Имя демона подкачки немного ошибочно, поскольку демон делает больше, чем просто заменяет измененные страницы в файл подкачки. Его задача - обеспечить эффективную работу системы управления памятью. Демон подкачки ядра (kswapd процесс инициализации ядра во время запуска и сидит в ожидании периодического истечения таймера подкачки ядра.) Запускается при каждом истечении времени таймера демон подкачки проверяет, есть ли число свободных страниц в системе становится слишком мало. Свободных страниц в системе слишком мало, если: nr_free_pages + nr_async_pages < free_pages_high

Linux не хочет, чтобы в файл подкачки одновременно записывалось слишком много страниц, поэтому она использует nr_async_pages для хранения количества страниц, записываемых в данный момент в файл подкачки. free_pages_low и free_pages_high устанавливаются во время запуска системы и связаны с количеством физических страниц в системе. Если свободных страниц достаточно, демон подкачки спит до тех пор, пока не истечет его таймер, в противном случае демон подкачки пытается тремя способами уменьшить количество физических страниц, используемых системой:

  • Уменьшение размера буфера и кэшей страниц,
  • Обмен общих страниц,
  • Обмен или удаление страниц.

По умолчанию демон подкачки пытается освободить 4 страницы при каждом запуске. Вышеуказанные методы проверяются по очереди, пока не будет освобождено достаточное количество страниц. Затем демон обмена снова спит, пока не истечет его таймер.


kswapd swap