Swap — это область на диске (выделенный раздел или файл), которую операционная система использует как расширение оперативной памяти. Когда объем данных в ОЗУ приближается к пределу, ядро перемещает редко используемые страницы памяти во вторичное хранилище, освобождая место для активных задач.
Механизм работы
Процесс контролируется подсистемой управления памятью. Если приложению требуются данные, ранее выгруженные на диск, возникает событие page fault, и ОС загружает их обратно в ОЗУ, при необходимости вытесняя другие блоки. Основные сценарии применения:
- Предотвращение сбоев: наличие свопа защищает от принудительного завершения процессов механизмом
OOM Killerпри резких скачках потребления. - Оптимизация кэша: выгрузка неактивного кода в своп позволяет системе использовать освободившуюся ОЗУ для дискового кэширования, что ускоряет чтение файлов.
- Гибернация: сохранение всего содержимого оперативной памяти на диск перед выключением питания.
В Linux интенсивность использования подкачки регулируется параметром vm.swappiness. Значение 10 означает, что система будет избегать свопа до последнего, а значение 60 является стандартным балансом для рабочих станций.