Настройка SWAP, ускорение и стабилизация работы сервера

Swap раздел на сайте, что это, как увеличить и настроить для работы

Дата публикации:

Автор:

Раздел сайта:

При инсталляции одного сервера я имел еще немного опыта и по совету серверного администратора установил небольшой swap в 512 мегабайт. Что такое swap в целом для сервера, это хранилище данных для выгрузки из оперативной памяти, когда там разумное уже наполнение. То есть если говорить более чётче, у вас, например, 32 гигабайта оперативной памяти и вы отдали гигов 12 под разного рода буфера для ускорения работы, осталось 20 гигов, которые могут забиться. Здесь в линуксах стоит параметр, который определяет при каком размере наполнения данных вы можете сбросить данные уже в swap на диске, чтобы избежать нагрузки и увеличить размер возможностей для исполняемых данных.

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

Как посмотреть размер SWAP и его загрузку

Первое с чего стоит начать, это глянуть размеры swap и его загрузку на сервере или vps. Заходите в top или htop, без разницы что у вас там стоит и там вы увидите данные о размере swap и его загрузке. Я раньше мало внимания на это обращал, пока не начались некоторые тормоза в определенные моменты работы. А там просматривая все данные увидел, что все 512 мегабайт забиты и соответственно тормозит сервер. Итак, вы зашли и увидели размер swap и его загруженность. Если она критичная, то есть он забит на 100% то стоит задуматься об увеличении места, но тут вылезает очень интересный момент: не получится увеличить физический размер swap без потерь данных, так как это фактически форматирование дисков. А если у вас рабочий сервер, то это уже точно проблема. И тут мы вытаскиваем простое решение в виде виртуального swap, который очень легко создаётся.

Создание виртуального SWAP

Что такое виртуальный swap. Это по сути тоже самое, физическое место на диске, но реализованное в виде виртуального диска файла, подключаемого в fstab.conf. Если говорить понятнее: вы делаете файл, заполняете его нулевыми данными, соответственно размер нужный и затем подключаете его к работе сервера как swap диск. Никаких форматирований и проблем. Отличное решение кстати. Я решил так и сделать. Обдумал размеры, которые стоит указать. Если памяти у меня 32 и порядка 12-16 гигов заняты буферами разного уровня, то в работе с процессами участвуют 16 гигов, значит сделаю себе такой же размер swap. Далее внимательно смотрите порядок создания:

  • Заходим в ssh и там проверяем размер дисков: df -h;
  • Даём команду на создание файла с нулями sudo fallocate -l 16G /swapfile;
  • Другой вариант создания файла: dd if=/dev/zero of=/swapfile bs=1M count=16384;
  • Теперь надо дать права доступа к файлу для root: sudo chmod 600 /swapfile или chmod 600 /swapfile;
  • Включаем swap и указываем файл: swapon /swapfile
  • Вносим в fstab.conf данные о swap: /swapfile swap swap defaults 0 0

Дальше можно для надёжности произвести перезагрузку. И после этого уже начинать фиксировать результаты.

Настройка SWAP, ускорение и стабилизация работы сервераНастройка подключения swap

Теперь немного о общих настройках подключения swap. Обычно по стандарту стоит, что после использования 60% памяти начинают данные перекладываться в swap для экономии памяти. Чтобы проверить это точно делаем следующую команду: cat /proc/sys/vm/swappiness и видим цифры результата. Если там стоит стандартно 60, то значит, что при достижении этого параметра из памяти данные переходят в swap.

Теперь проверим параметр vfs_cache_pressure, который уже даст вам значение насколько ваш линукс будет удерживать кэши в оперативке или же переносить в swap. Для проверки вводим команду: cat /proc/sys/vm/vfs_cache_pressure. В ответе снова будут цифры и их значения обозначают следующее:

Параметры vm.vfs_cache_pressure:

0 — не кэшировать.
100 — как есть стандартно.
>100 — агрессивно кэшировать дисковые операции.

В принципе дальше вы можете для себя выбирать какие параметры стоит выставить. Я сделал себе виртуальный своп на 16 гигабайт, оставил стандартно 40% и также оставил среднее в 100 кэширование. Теперь по итогам проверки вижу, что своп используется примерно 5 гигабайт из 16 за сутки. Значит он был нужен, и эта операция была нужна.

Кроме этого сразу снизились параметры нагрузки и перестали выскакивать скачки непонятные, когда процесс оставался в свопе, забивал его и тормозил в целом сервер. Пишите свои наблюдения и опыты, будет интересно прочесть.

Да кстати команда sysctl -pона поможет вам подцепить данные, без общей перезагрузки.

РЕКОМЕНДУЕМ

Файл .htaccess подробное описание, где находится, настройка и оптимизация

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

Убираем показ ошибок на сайте при режиме работы Nginx и PHP-FPM

Столкнулся с задачей убрать ошибки при просмотре сайта, который работает в режиме nginx + php-fpm. В настройках php панели показ ошибок отключен, однако ошибки...

5 лучших плагинов для перевода сайта на WordPress, сравнение и описание

Если вы хотите создать многоязычный сайт WordPress, вам понадобится плагин для перевода WordPress. Но выбор правильного многоязычного плагина WordPress - это важное решение, так как...

Новая сборка OKWP WordPress 1.9.4 для информационных сайтов

Много прошло времени, с момента последнего выхода сборки OkWP Wordpress. За это время я перебрал несколько вариантов сборки, что то добавлялось, что убирал. На...

MyISAM против Innodb MySQL Engine для WordPress что лучше и конвертация таблиц базы данных

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

Эффективные SEO-метрики для отслеживания вовлеченности и эффективности контента

Отслеживание эффективности контента связано с изучением метрики вовлечённости , который раскрывает основные проблемы, связанные с контентом. SEO является ключевым компонентом успеха онлайн-бизнеса. Таким образом,...

UDP против TCP, или Будущее сетевого стека (highload обсуждение)

Что мы знаем об IP-сетях Мы отправляем пакеты черный ящик их пересылает клиенту клиент собирает пакеты Внутри черного ящика есть уровни: Давайте сравним TCP и UDP....

Что такое HTTP/3 – описание и возможности нового протокола на основе UDP

В ноябре 2018 года в Бангкоке состоялась встреча Инженерной рабочей группы по Интернету (IETF), и был принят новый проект Интернет . Транспортный протокол QUIC, преемник HTTP/2 , был переименован в HTTP/3. HTTP/3 основан...
Настройка SWAP, ускорение и стабилизация работы сервера
Alecs Retin
Работаю в сфере web с 2009 года. Занимался созданием своих проектов в разных тематиках. В основном делаю сайты на Instantcms и Wordpress. Оказываю услуги разработки сайтов и стартапов, инвестирую в интернет проекты и сервисы. Более 10 лет занимаюсь Web разработкой и создание интернет проектов. Интернет магазины, информационные порталы, городские порталы. Оказываю поддержку в развитии и продвижении сайтов.

ПОХОЖИЕ МАТЕРИАЛЫ

Файл .htaccess подробное описание, где находится, настройка и оптимизация

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

Убираем показ ошибок на сайте при режиме работы Nginx и PHP-FPM

Столкнулся с задачей убрать ошибки при просмотре сайта, который работает в режиме nginx + php-fpm. В настройках php панели показ ошибок отключен, однако ошибки...

5 лучших плагинов для перевода сайта на WordPress, сравнение и описание

Если вы хотите создать многоязычный сайт WordPress, вам понадобится плагин для перевода WordPress. Но выбор правильного многоязычного плагина WordPress - это важное решение, так как...

Новая сборка OKWP WordPress 1.9.4 для информационных сайтов

Много прошло времени, с момента последнего выхода сборки OkWP Wordpress. За это время я перебрал несколько вариантов сборки, что то добавлялось, что убирал. На...

MyISAM против Innodb MySQL Engine для WordPress что лучше и конвертация таблиц базы данных

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

Эффективные SEO-метрики для отслеживания вовлеченности и эффективности контента

Отслеживание эффективности контента связано с изучением метрики вовлечённости , который раскрывает основные проблемы, связанные с контентом. SEO является ключевым компонентом успеха онлайн-бизнеса. Таким образом,...