Диагностика ресурсов сервера

Инфо взято в заметки из данных любимого хостера FirstVDS

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

Чтобы этого не произошло, нужно следить за параметрами сервера. За какими и как – расскажем в этой статье.

  1. Как посмотреть общую нагрузку на сервер
  2. Как посмотреть нагрузку детально
    • Дисковая память
    • Оперативная память
    • Сетевой канал
  3. Как увидеть нагрузку через браузер
  4. Когда нагрузку создают Apache и Mysql

Как посмотреть общую нагрузку на сервер

Отслеживать нагрузку на ОС WIndows позволяет «Диспетчер задач», в Linux свои инструменты.

Самая распространённая утилита мониторинга – top.

IMG_256

Top показывает среднюю нагрузку на сервер (Load Average) в течение 1, 5 и 15 минут. В идеале она должна быть меньше, чем количество ядер процессора. Например, LA 4 при четырёх ядрах означает: каждое ядро загружено на 100% — стоит снизить нагрузку.

Далее последовательно указаны самые «тяжёлые» процессы, сколько они потребляют оперативной памяти и CPU.

Другая утилита – atop – подсвечивает высокую нагрузку красным.

IMG_257

Схожий функционал предоставляет nmon – при нажатии определённых клавиш выдаёт графики нагрузки: процессор (с), чтение/запись диска (d), сеть (n) и память (m) и т. д. Список нужных клавиш будет отражен при запуске программы — в приветственном окне.

IMG_258

Как посмотреть нагрузку детально

Начнём с дисковой памяти — её не покажут перечисленные утилиты.

ISPmanager не открывается, а на сайтах возникает ошибка (например, Unable to connect to the database: Could not connect to MySQL), однако сам сервер доступен и пингуется. Скорее всего, закончилось место на диске, проверить это легко:

Команда df -h покажет все примонтированные разделы и сообщит, сколько места занято, а сколько свободно. Картина на скрине сигнализирует – место на диске нужно срочно освобождать:

IMG_259

du -hs /* отобразит размер всех директорий:

IMG_260

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

IMG_261

Также можно освободить место через очистку временных файлов – логов, кеша, php-сессий.

С оперативной памятью по-другому – она динамична. Процессы запускаются, отработав, умирают, и показатели меняются ежесекундно. Оценить обстановку поможет free -m.

В строке -/+ buffers/cache увидим показатели used и free – использованная и свободная память.

По первой строке можно определить объем доступной пользователю памяти. Для этого сложите параметры free и cached, так как закешированая память также может быть использована приложениями.

IMG_262

Определить, какие процессы занимают память, поможет такой однострочник:

ps axo rss,comm,pid \

| awk ‘{ proc_list[$2]++; proc_list[$2 “,” 1] += $1; } \

END { for (proc in proc_list) { printf(“%d\t%s\n”, \

proc_list[proc “,” 1],proc); }}’ | sort -n | tail -n 10 | sort -rn \

| awk ‘{$1/=1024;printf “%.0fMB\t”,$1}{print $2}’

IMG_263

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

Всем VDS на хостинге предоставлен минимум стомегабитный канал, хватает его или нет покажет iftop, запущенный с ключом -m 100M.

IMG_264

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

Также показатели трафика на VDS покажет VMmanager.

Если вы используете VMmanager 5, перейдите в раздел «Использование канала». На графиках видно, сколько трафика прошло через сервер за определённый период времени.

IMG_265

Если вы используете VMmanager 6, в разделе «Виртуальные машины» нажмите на ваш сервер и выберите пункт «Статистика».

IMG_266

В этом разделе вы увидите графики нагрузки на разные ресурсы сервера. Трафик будет внизу.

IMG_267

Как увидеть нагрузку через браузер

Есть мониторинги нагрузки, например, Munin:

IMG_268

Или NetData:

IMG_269

Если на сервере установлена панель ISPmanager, в ней также можно анализировать нагрузку по процессору, памяти, занимаемому дисковому пространству:

IMG_270

В списке самых прожорливых процессов Apache и Mysql

Если нагрузку создаёт Apache, то на сервер приходит множество запросов по 80, 443 портам. Для снижения нагрузки рекомендуется использовать на сервере Nginx, включить сжатие и кэширование статичных ресурсов.

Возможно, это легитимная посещаемость, поисковые боты или DDOS-атака. В случае поисковых ботов можно сократить время между запросами к серверу в учетной записи Яндекс.Вебмастер и Google Webmasters Tool. В случае атаки настройками не обойтись — необходимо подключить дополнительную защиту.

Ресурсы потребляет Mysql – проведите оптимизацию настроек службы с помощью Mysqltuner.

Также стоит по возможности оптимизировать SQL-запросы к базам данных. Проверьте их через отображения списка текущих операций Mysql — команда show full processlist.

И обратите внимание на показатель WA в top: значение больше 20 говорит о том, что информация не успевает записываться на диск – необходимы диски SSD или NVMe.

0 0 Голоса
Оцените статью =)

Вам может также понравиться...

Подписаться
Сообщать о
guest
0 Комментарий
Inline Feedbacks
Смотреть все комментарии
0
Есть вопросы? Задавайте =)x