Анализ нагрузки на VPS

Редактор: Дмитрий Сокол 7829 7 мин Аудио

Стабильность и скорость работы сайта и VPS-сервера зависят от выделенных ресурсов и их использования. Если замечена медленная работа сайта, то необходимо оценить нагрузку на VPS.

Повышенная нагрузка может быть вызвана:

  • DDoS-атакой;
  • “тяжелыми” запросами в базе данных;
  • повышенной активностью реальных пользователей. 

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

Мониторинг виртуального сервера

Команда top

Наиболее популярной и предустановленной утилитой для мониторинга использования ресурсов является top. Для ее запуска в консоли вашего сервера напишите команду:

top

После этого вы сможете увидеть статистику по нагрузке и запущенным процессам в реальном времени:

В выводе можем выделить следующие параметры:

  • Load averege - три значения показывают нагрузку в системе за последние 1, 5, 15 минут соответственно. Зачастую за норму берут значение в 1 на 1 ядро CPU. 
  • Tasks - количество запущенных процессов. Особое внимание нужно обратить на zombie-процессы (зависшие процессы). Если такие обнаружены, то их нужно “убить”. Для этого существует команда:

kill

  • %CPU(s) - процентное применение процессора разными программами. 
  • Mem - количество оперативной памяти и ее использование. 

Ниже в столбцах указано процентное соотношение использования CPU или RAM конкретным процессом, его идентификатором и пользователем:

Если указанные ресурсы используются в большом объеме, например, сервером баз данных - mysqld, то можно посмотреть процессы сервера БД или настроить логирование медленных запросов. 

Как узнать нагрузку на сервер баз данных

mysqladmin processlist status 

При вводе данной команды в терминале сервера вы получите следующий вывод:

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

vi /etc/mysql/my.cnf

и добавьте: 

slow-query-log      = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log
long_query_time     = 3

После внесения изменений перезагрузите сервер баз данных:

service mysqld restart

Для long_query_time установите время в секундах. Запросы, которые будут выполняться дольше, будут логироваться в файл /var/log/mysql/mysql-slow.log. После этого вы сможете открыть данный файл и понять, какой запрос и в какой таблице замедлял работу сервера. 

Определение нагрузки на веб-сервер

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

В таком случае нужно смотреть логи доступа. Зачастую они расположены по пути /var/log/apache2/access.log.

Откройте указанный файл в реальном времени:

tail -f /var/log/apache2/access.log

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

Утилита htop

Еще одной популярной утилитой для мониторинга ресурсов вашего сервера является утилита htop (устанавливать ее нужно дополнительно). Для этого на Ubuntu выполните следующую команду:

apt install htop

Для запуска утилиты используйте команду htop:

Утилита имеет более широкий функционал и дополнительные возможности. С помощью “горячих” клавиш вы можете настраивать под себя вывод содержимого на экран, искать и сортировать процессы по использованию RAM или CPU, “убивать” их и многое другое. Подсказки будут доступны внизу программы, что упрощает ее использование. 

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

Подсказки по “горячим” клавишам есть внизу окна программы:

Утилита atop

Еще одна полезная утилита - atop. Требует дополнительной установки. Для этого выполните команду: 

apt install atop

Главным преимуществом является возможность логирования.

По умолчанию утилита пишет лог раз в 10 минут (период можно изменить в конфигурационном файле). Для изменения периода логирования откройте конфигурационный файл:

vi /etc/sysconfig/atop

и установите нужное время в разделе loginterval:

Логи размещаются в директории /var/log/atop

Сегодняшний файл можно открыть командой atop -r, где с помощью клавиш t или Shift + t можно листать лог вперед или назад по времени соответственно. Лог-файл с нужной датой можно открыть командой:

atop -r /var/log/atop/atop_20211026

Выводы

Для избежания нагрузок на сервере нужно выполнять оптимизацию сервера баз данных, запросов к БД веб-сервера. Все настройки индивидуальны и зависят от сайта, ресурсов сервера и ПО, которое установлено на сервере. Также можно увеличить ресурсы сервера. 

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

Дмитрий Сокол

Провайдеры с виртуальным выделенным сервером (VPS)

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
40402
4.8 80

Где купить SSL сертификат?

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
200000
4.9 159

Хостинг в Москве

Rank Хостинг Клиенты Оценка Отзывы
1
21000
4.8 230
2
3700000
4.8 376
3
65000
4.7 301
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

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

Вид хостинга

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

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

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

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

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

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

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

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

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

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Тип диска