Что такое swap-раздел и для чего он нужен

Во время запуска программы ее код и некоторые данные загружаются в оперативную память (RAM, Random Access Memory). Если одна или несколько запущенных программ требуют меньше оперативной памяти, чем установлено на компьютере, то они продолжат нормально функционировать. Но, если в оперативной памяти осталось меньше свободного места, чем требуется программе для загрузки своих данных, то она выдаст ошибку и прекратит свою работу.

В такие моменты Linux начинает использовать swap-раздел на жестком диске в качестве оперативной памяти, “увеличивая” ее доступный объем - перемещает на него из оперативной памяти неиспользуемые в данный момент данные, освобождая место для новых.

Казалось бы, зачем тогда вообще нужна относительно дорогая оперативная память, если за те же деньги можно купить жесткий диск гораздо большего объема и использовать его весь в качестве swap-раздела? Все дело в скорости. Доступ к данным в оперативной памяти примерно в сто тысяч раз быстрее, чем на жестком диске (реальные данные варьируются в зависимости от системы). Одна и та же операция с доступом к данным в оперативной памяти и swap-разделе, на выполнение которой потребовалась бы одна секунда в первом случае, во втором займет много часов.

Таким образом, swap-раздел не подходит для постоянного использования в качестве оперативной памяти, но он может сильно помочь в пиковые моменты, предотвратив “зависание” и остановку работы программ.

Так сколько же места выделять для swap-раздела?

Невозможно определить четкий ответ на этот вопрос, потому что он зависит от конкретной конфигурации системы и спектра решаемых ей задач, но существуют базовые рекомендации:

  • если объем RAM меньше 2 гигабайт, то swap-раздел должен быть минимум в два раза больше

  • если объем RAM больше 2 гигабайт, то размер swap-раздела должен равняться RAM * 2 + 2Гб

  • если объем RAM больше 4 гигабайт, то размер swap-раздела должен равняться 20% от размера оперативной памяти