Fornex
Европейский
хостинг

    SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накопитель).

    В ОС Linux оперативная память (ОЗУ, RAM, random access memory) делится на разделы, называемые страницами (pages). Swapping (”подкачка”, своппинг) – это процесс во время которого страницы памяти копируются на специально сконфигурированный для этого раздел диска, называемый swap space (раздел подкачки, может быть как и файлом, так и разделом жесткого диска), для освобождения ОЗУ. Совокупные размеры физической памяти и раздела подкачки – это объем имеющийся виртуальной памяти.

    Своппинг необходим по следующим причинам:

    • когда системе необходимо больше памяти (т.е. приложение или процесс запрашивает у системы больше памяти) чем сейчас свободно в ОЗУ, ядро разгружает (”откачивает”) наименее используемые страницы и освобожденную память выделяет текущему приложению или процессу.
    • значительное количество страниц используемых программами на стадии запуска, используются только при инициализации и никогда более. Соответственно система может засвопить эти страницы, тем самым освобождая (разгружая) ОЗУ.

    Недостатки SWAP:

    • По сравнению с ОЗУ, работа с жестким диском осуществляется намного медленнее. Для оценки временных затрат на чтение/запись в ОЗУ используются наносекунды, в то время как для жесткого диска используются миллисекунды, т.е. одни и теже операции на жестком диске занимают в десятки тысяч больше времени чем в ОЗУ. Следовательно чем больше страниц своппится, тем медленнее работает ваша система.

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

    • Постоянное падение сайта: Ошибка соединения с базой данных — означает, например, что MySQL упал;
    • При изучении логов /var/log/mysql.log обнаруживается ошибка InnoDB: Fatal error: cannot allocate memory for the buffer pool. Она свидетельствует о том, что базе данных не хватает выделенной ей оперативной памяти для создания буфера.

    Если файл или раздел свопа хранится на SSD, нужно понимать что поиск и чтение данных происходит через оперативную память, что, в свою очередь, всё равно увеличивает время отклика.

    Поэтому, если Вы сталкиваетесь с нехваткой оперативной памяти, мы рекомендуем переходить на тарифный план повыше.

    Проверка наличия свопа в системе:

    ?wzxhzdk:0?

    Дополнительно проверим командой:

    ?wzxhzdk:1?

    Мы видим что SWAP готов и будет использоваться при необходимости.

    В случае отсутствия можно создать файл для swap

    ?wzxhzdk:2?

    Данная команда создаст файл /swap.file размером 512 мегабайт. Для увеличения данного показателя, измените count

    Выставляем права на него, чтобы никто не мог писать и читать файл, кроме владельца - root

    ?wzxhzdk:3?

    Отформатируйте файл под swap

    ?wzxhzdk:4?

    Отредактируйте файл /etc/fstab

    Чтобы swap включался при загрузке, нужно добавить его в /etc/fstab

    Добавляем строку

    ?wzxhzdk:5?

    Далее можно перезагрузить сервер и проверить наличие swap командой free -m