Мониторинг производительности
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Мониторинг производительности сервера TON
Такие инструменты, как htop
, iotop
, iftop
, dstat
, nmon
и другие, подходят для измерения производительности в реальном времени, но их функционала не хватает для изучения проблем производительности в прошлом.
Это руководство рекомендует и объясняет, как использовать утилиту Linux sar (System Activity Report) для мониторинга производительности сервера TON.
Эта рекомендация помогает определить, испытывает ли Ваш сервер нехватку ресурсов, а не т о, что движок валидатора работает плохо.
Установка
Установка SAR
sudo apt-get install sysstat
Включение автоматического сбора статистики
sudo sed -i 's/false/true/g' /etc/default/sysstat
Включение сервиса
sudo systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer
Запуск сервиса
sudo systemctl start sysstat sysstat-collect.timer sysstat-summary.timer
Использование
По умолчанию sar собирает статистику каждые 10 минут и показывает статистику за текущий день, начиная с полуночи. Это можно проверить, запустив sar без параметров:
sar
Чтобы увидеть статистику за предыдущий день или за два дня до текущ его, передайте число в качестве опции:
sar -1 # previous day
sar -2 # two days ago
Для точной даты используйте опцию f, с указанием файла определенного дня месяца. Таким образом, для 23 сентября это будет:
sar -f /var/log/sysstat/sa23
Какие отчеты sar нужно запускать и как их читать, чтобы выявить проблемы с производительностью?
Ниже приведен список команд sar, которые можно использовать для сбора различной системной статистики. Вы можете дополнить их приведенными выше параметрами, чтобы быстро получить отчет за нужную дату.
Отчет о памяти
sar -rh
Поскольку движок валидатора TON использует функцию jemalloc, он кэширует много данных. По этой причине команда sar -rh чаще всего возвращает низкое число в колонке %memused
.
В то же время, в колонке kbcached
всегда будет высокое число. По той же причине Вам не стоит беспокоиться о низком количестве свободной оперативной памяти, показанном в колонке kbmemfree
. Однако важным показателем является число, полученное из столбца %memused
.
Если оно превышает 90%, Вам следует задуматься о добавлении большего объема оперативной памяти и следить за тем, не останавливается ли движок валидатора по причине OOM (out of memory - нехватка памяти) - лучший способ проверить это - поискать сообщения Signal в файле /var/ton-work/log
.
Использование свопа
sar -Sh
Если Вы заметили, что используется своп, желательно увеличить объём оперативной памяти. В целом, команда TON Core рекомендует отключить своп.
Отчет по процессору
sar -u
Если Ваш сервер в среднем использует процессор на 70% (см. колонку '%user'), это можно считать хорошим показателем.
Отчет об использовании диска
sar -dh
Следите за колонкой '%util' и реагируйте соответственно, если она остается выше 90% для определенного диска.
Сетевой отчет
sar -n DEV -h
или
sar -n DEV -h --iface=<interface name>
если Вы хотите отфильтровать результаты по имени сетевого интерфейса.
Обратить внимание на колонку %ifutil
- она показывает использование Вашего интерфейса с учетом его максимальной скорости соединения.
Вы можете узнать, какую скорость поддерживает Ваша сетевая карта, выполнив команду:
cat /sys/class/net/<interface>/speed
Это не скорость соединения от провайдера.
Подумайте о повышении скорости соединения, если %ifutil
говорит об использовании выше 70%, или колонки rxkB/s и txkB/s показывают значения близкие к пропускной способности, предоставляемой Вашим провайдером.
Сообщение о проблеме производительности
Прежде чем сообщать о проблемах с производительностью, уб едитесь, что минимальные требования к узлу удовлетворены. Затем выполните следующие команды:
sar -rudh | cat && sar -n DEV -h --iface=eno1 | cat > report_today.txt
Для вчерашнего отчета выполните:
sar -rudh -1 | cat && sar -n DEV -h --iface=eno1 -1 | cat > report_yesterday.txt