Сегодня поговорим об одном из типов оперативной памяти, который физически таковым и не является. Почему? Да потому что swap (он же «файл подкачки» в windows) - это размеченное пространство на вашем диске.
В мало нагруженных системах использование swap обычно стремится к нулю, так как система предпочтет использование RAM (настоящей оперативной памяти). И только когда наша память переполнена, ядро начинает ее высвобождать для новых процессов, скидывая часть данных в swap.
Процессор и оперативная память находятся на, так называемом, "северном мосту", а все остальное оборудование вашего ПК, или сервера - на "южном мосту". Это позволяет процессору максимально быстро получать доступ к памяти, в которую он сбрасывает результаты своих обсчетов. Ииии... Это не работает в случае со swap, так как чтение/запись на диск проигрывает по скорости всем остальным операциям.
Да, даже если у вас самый новый и модный nvme m2 диск, все равно будет медленнее, смиритесь.
Swap может быть реализован в виде специального раздела на диске или файла. Оба варианта выполняют одну и ту же функцию, но использование файла может быть более гибким.
Ищем swap в своей системе
- Если мы запросим вывод нашей памяти, увидим, что параметр "Подкачка" вынесен в отдельный раздел:
- Вспоминаем, что swap - это файл, или раздел. Значит, он должен быть примонтирован к системе для использования. Открываем наш /etc/fstab
Вот мы и нашли наш swap file, он находится в корневой директории. Интересно, что файловая система на нем называется тоже "swap", а точки монтирования у него нет.
- Ищем наш файл в корневой директории:
У файла права 600, владелец root. Размер ровно 2GiB.
Увеличиваем swap
Представим, что у нас полная печаль с оперативной памятью, и даже 2ГБ swap нам не хватает. Что же делать?
- Создадим новый файл в корневой директории размером 2ГБ:
dd if=/dev/zero of=/swapfile1 bs=1024 count=2097152
- Выставим права на файл 600:
chmod 600 /swapfile1
- Создадим в этом файле новую файловую систему "swap":
mkswap /swapfile1
- Подключим наш файл к использованию swap:
swapon /swapfile1
- Проверяем, что все получилось:
- Если хотите и дальше использовать новый файл подкачки, необходимо прописать его в /etc/fstab
Команда "swapon" добавит файл подкачки в систему, "swapoff" - уберет его. При использовании ключа "-a", команды затронут все swap файлы на вашем диске.
Плюсы использования swap
- Увеличение доступной памяти
Swap позволяет временно хранить данные, когда оперативная память заполнена, что дает возможность запускать больше процессов и работать с большими программами, и даже при переполненной RAM система может продолжать функционировать, не падая из-за нехватки памяти.
- Улучшение производительности в определенных ситуациях
Если система использует много ресурсов, временное использование swap может помочь избежать использования 100% оперативной памяти, что может вызвать зависания.
- Гибкость
Swap можно быстро и легко настроить для использования как отдельного раздела, так и файла, что позволяет легко менять конфигурацию в зависимости от потребностей системы.
Минусы использования swap
- Медленная скорость доступа
Доступ к данным в swap происходит значительно медленнее, чем к данным в RAM. При активном использовании swap, это может стать большой проблемой, так как программы, чьи временные данные попали в swap, начинают работать значительно медленнее.
- Повышенных износ диска
Конечно, SSD нового поколения имеют повышенный ресурс перезаписи данных, но активное использование swap может серьезно его подпортить.
В заключение хочется сказать одно: у каждого инструмента есть свое назначение. Вы можете забивать гвозди плоскогубцами, но зачем так делать, если есть молоток.
Так и в случае со swap: если вы понимаете, что ваша система уперлась в потолок использования оперативной памяти, увеличьте ее объем, а не расширяйте swap.