Анализ нагрузки на VPS
Стабильность и скорость работы сайта и 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 |
От панели управления зависит ваше удобство в настройке хостинге\сайта.
Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.
Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.
Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.
VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.
Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.
Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.
CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.
Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).
Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).
Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.
Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".
Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.
Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.
Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.
Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.
Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.
На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.
ASP.NET - платформа для разработки веб-приложений от Майкрософт.
ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.