====== Мониторинг в ОС 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** — показывает сколько система работает с момента последней перезагрузки. На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след». __Оригинал:__ http://habrahabr.ru/sandbox/31010/