В этой статье я опишу некоторые утилиты для одномоментного мониторинга нагрузки\загрузки\использования в операционной системе 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 — показывает сколько система работает с момента последней перезагрузки.
На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след».
Первое с чего начну, это всем известная утилита 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 — показывает сколько система работает с момента последней перезагрузки.
На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след».