Найти в Дзене
Записки сисадмина

Linux. SWAP'ай вправо. Разбираемся с файлом подкачки.

Оглавление

Сегодня поговорим об одном из типов оперативной памяти, который физически таковым и не является. Почему? Да потому что swap (он же «файл подкачки» в windows) - это размеченное пространство на вашем диске.

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

Процессор и оперативная память находятся на, так называемом, "северном мосту", а все остальное оборудование вашего ПК, или сервера - на "южном мосту". Это позволяет процессору максимально быстро получать доступ к памяти, в которую он сбрасывает результаты своих обсчетов. Ииии... Это не работает в случае со swap, так как чтение/запись на диск проигрывает по скорости всем остальным операциям.

Да, даже если у вас самый новый и модный nvme m2 диск, все равно будет медленнее, смиритесь.

Swap может быть реализован в виде специального раздела на диске или файла. Оба варианта выполняют одну и ту же функцию, но использование файла может быть более гибким.

Ищем swap в своей системе

  • Если мы запросим вывод нашей памяти, увидим, что параметр "Подкачка" вынесен в отдельный раздел:
  • Вспоминаем, что swap - это файл, или раздел. Значит, он должен быть примонтирован к системе для использования. Открываем наш /etc/fstab
-2

Вот мы и нашли наш swap file, он находится в корневой директории. Интересно, что файловая система на нем называется тоже "swap", а точки монтирования у него нет.

  • Ищем наш файл в корневой директории:
-3

У файла права 600, владелец root. Размер ровно 2GiB.

Увеличиваем swap

Представим, что у нас полная печаль с оперативной памятью, и даже 2ГБ swap нам не хватает. Что же делать?

  • Создадим новый файл в корневой директории размером 2ГБ:
-4
dd if=/dev/zero of=/swapfile1 bs=1024 count=2097152
  • Выставим права на файл 600:
chmod 600 /swapfile1
  • Создадим в этом файле новую файловую систему "swap":
-5
mkswap /swapfile1
  • Подключим наш файл к использованию swap:
swapon /swapfile1
  • Проверяем, что все получилось:
-6
  • Если хотите и дальше использовать новый файл подкачки, необходимо прописать его в /etc/fstab

Команда "swapon" добавит файл подкачки в систему, "swapoff" - уберет его. При использовании ключа "-a", команды затронут все swap файлы на вашем диске.

Плюсы использования swap

  • Увеличение доступной памяти

Swap позволяет временно хранить данные, когда оперативная память заполнена, что дает возможность запускать больше процессов и работать с большими программами, и даже при переполненной RAM система может продолжать функционировать, не падая из-за нехватки памяти.

  • Улучшение производительности в определенных ситуациях

Если система использует много ресурсов, временное использование swap может помочь избежать использования 100% оперативной памяти, что может вызвать зависания.

  • Гибкость

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

Минусы использования swap

  • Медленная скорость доступа

Доступ к данным в swap происходит значительно медленнее, чем к данным в RAM. При активном использовании swap, это может стать большой проблемой, так как программы, чьи временные данные попали в swap, начинают работать значительно медленнее.

  • Повышенных износ диска

Конечно, SSD нового поколения имеют повышенный ресурс перезаписи данных, но активное использование swap может серьезно его подпортить.

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

Так и в случае со swap: если вы понимаете, что ваша система уперлась в потолок использования оперативной памяти, увеличьте ее объем, а не расширяйте swap.