Мониторинг в ОС FreeBSD, или находим узкое место

В этой статье я опишу некоторые утилиты для одномоментного мониторинга нагрузки\загрузки\использования в операционной системе FreeBSD. Цель — увидеть, что именно сейчас происходит с системой. Чаще, используется когда нужно найти проблему с производительностью или с неправильной работой системы. Для постоянного мониторинга и построения отчётов я использую zabbix. Тема скорей всего уже поднималось, но мне хочется видеть FAQ в одной статье. Крайне приветствую в комментариях дополнения, команды, советы и выдержки из личного опыта.


Первое с чего начну, это всем известная утилита top. Она показывает общие сведения о процессоре, памяти и процессах, если возникают вопросы по производительности, я её запускаю первой, чтобы выявить аномалии в системе. У утилиты top есть параметры, которые облегают жизнь, их мы набираем в top'e когда он запущен:
S — показать системные процессы, по умолчанию они не показываются
u — и имя пользователя, например u mysql покажет процессы запущенные от пользователя mysql
o — используем для сортировки, возможные параметры — pri, size, res, cpu, time, threads
m — переключение между режимами отображения нагрузки и ввода-вывода
k — завершить процесс, ввод pid процесса
r — изменить приоритет процесса, вводим pid процесса
n — отображать статистику по определённому процессу
a — показывает абсолютные запущенных процессов
top -n 3 — показывает самые ресурсоёмкие приложения в данный момент

gstat — показывает использование дисков.
gstat -a — используется для вывода только активных устройств

vmstat — показывает состояние виртуальной памяти и буфера.
vmstat 5 — отображает статистику раз в пять секунд
vmstat -z — показывает состояние буфера
vmstat -i — показывает состояние прерываний

iostat — выводит статистику по I/O усройств
iostat -d -w5 — показывать информацию по дискам, с периодичностью в пять секунд безостановочно
iostat -dx -w5 — показывает расширенную статистику

systat — отображает различные параметры системы.
systat -vmstat 1 — отображает суммарную системную статистику
systat -netstat 1 — показывает активные сетевые соединения
systat -ifstat 1 — отображает нагрузку сетевых интерфейсов
systat -tcp 1 — отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6
systat -iostat 1 — отображает нагрузку на процессов, дисковую подсистему
systat -swap 1 — показывает загрузку файла подкачки

netstat — показывает активные сетевые соединения.
netstat -w 1 — количество пакетов в настоящее время
netstat -ibt — вывод сетевых интерфейсов с разбивкой по IP адресам, отображает объём трафика, количество ошибок, коллизий.
netstat -rn — отображает таблицу маршрутизации

diskinfo -t ad0 – показывает информацию по диску, и делает тест на дисковую производительность.

sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.
sysctl -a — показывает все параметры
sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
sysctl kern.openfiles — показывает количество открытых файлов
Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи.

df — утилита, которая показывает свободное место на дисках.
df -h — отображает слайсы, и свободное\занятое место.
df -i — показывает количество занятых инодов.

fstat — показывает список открытых файлов.
fstat |grep http| wc -l — показывает список открытых файлов по процессу http

sockstat — отображает информацию о сокетах, сетевых и файловых.
sockstat -l — список портов открытых на прослушивание
sockstat -c список установленных соединений
sockstat -4, -6 — по протоколу ipv4 или ipv6

lsof — показывает информацию от откртых сокетах, файлах и сетевых соединениях.
lsof -i -n — показывает открытые интернет-соединения
lsof -i -n |grep ESTABLISHED — показывает открытые, и установленные сетевые соединения

ps auxww|grep имя\pid\откогозапущено — позволяет получить информацию по интересующему процессу.

mount — показывает смонтированные разделы.
swapinfo — показывает информацию о файле подкачки.

Также можно установить iftop, которая показывает статистику по сетевым интерфейсам, к при меру:
iftop -i em0

tunefs -p /tmp – показывает информацию о файловой системе.

uname -a — показывает информацию о системе, ядре.
date — выводит текущую дату и время.
w — показывает кто, откуда, во сколько зашёл в систему.
last — показывает историю входов в систему, и последнюю перезагрузку.
uptime — показывает сколько система работает с момента последней перезагрузки.

На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след».
Tags:
freebsd, мониторинг

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.