Мониторинг системы под FreeBSD. Полезные команды.

Системные команды, которыми можно проверить ресурсы системы, текущую нагрузку и просто просматривать различную информацию.

HDD
atacontrol list — просмотр всех жестких дисков в системе (показывает в том числе и их модели)

mount – показывает смонтированные подразделы и флаги из монтирования
cat /etc/fstab – таблица монтирования при загрузке
disklabel /dev/ad0s1 – показывает список подразделов в первом разделе диска ad0
swapinfo – показывает список подразделов свопинга на дисках и их использование
gstat – нагрузка на диски

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

fstat – показывает список открытых файлов (имена файлов не выводятся)
pstat -f – выводит список открытых файлов (имена файлов не выводятся)
iostat – выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки. Выводит статистику по I/O устройств.
iostat -d -w1 -c7 – нагрузка на диски. Статистика в удобном виде

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

vmstat – выводит количество операций на диске в секунду
sysinstall – можно посмотреть и изменить разметку диска и монтирование

Аналог iotop из Linux — top -m io -o total

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

systat -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
systat -io start 1 — HDD + CPU
diskinfo -t ad4 – тест на дисковую производительность
tunefs -p /var/ – информация о настройках файловой системы (UFS)

df -H – количество свободного места
df -i – количество свободных инодов

Network

ifconfig – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
ifconfig -d — Просмотреть список отключенных интерфейсов
ifconfig -u — Список включенных сетевух
netstat – вывод активных сетевых соединений (сокетов)
netstat -i ошибки на интерфейсах
netstat -m — просмотр хватает ли mbuf и т.д.
netstat -inb – сколько передано через интерфейс в байтах
netstat -ibt – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -hdw 1 -i net1 — Просмотр количества пакетов в сек, ошибок и дропов на интерфейсе (online)
netstat -r – таблица маршрутизации

systat -ifstat n– интенсивность передачи трафика (online) по всем сетевым интерфейсам за n секунд
systat -netstat n – аналог netstat в реальном времениsysctl kern.ipc.numopensockets – количество открытых сокетов
systat -ip n – таблица IP-пакетов и ошибок по типам за n секунд
systat -tcp n – таблица TCP-пакетов и ошибок по типам за n секунд
systat -icmp n – таблица ICMP-пакетов и ошибок по типам за n секунд

arp -a – просмотр всей таблицы ARP
arp -ad – очистка всей таблицы ARP

tcpdump -i rl0 host 192.168.61.20 and port 80 – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
trafshow -i rl0 – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)
System
top -mio – показать I/O по процессам
top -S – показать системные процессы в топе (по дефолту они не показываются)
top -SHPI — показать загрузку по ядрам, в том числе и системные процессы, кроме тех что в простое. Наиболее удобный вариант.

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

vmstat -z чего не хватает
vmstat -i прерывания по устройствам
systat -vmstat n – просмотр всей сводной статистики по системе(online). вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
uptime — можно просмотреть время работы системы без перезагрузок и load averages системы
pcpustat — мониторинг CPU (порт)
ps afx – список запущенных процессов и время процессора на каждый
rcorder /etc/rc.d/* /usr/local/etc/rc.d/* — Посмотреть очередность запуска сервисов в freebsd.
Memory
freecolor – очень симпатичная утилита для мониторинга использования памяти (ставится из портов)
Для детальной информации по расходу памяти:

fetch -o /usr/local/bin/free http://people.freebsd.org/~rse/dist/freebsd-memory
chmod +x /usr/local/bin/free
free

Службы времени

date – выводит текущее время и дату
w – выводит, сколько времени назад система загрузилась и список залогиненных пользователей
last – выводит историю перезагрузок и входов пользователей
lastlogin — выводит по пользователям дату и время последнего входа в систему uptime — показывает сколько работает система с момента последней перезагрузки.

sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.
sysctl -a — показывает все параметры
sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
sysctl kern.openfiles — показывает количество открытых файлов
Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи.
sockstat — отображает информацию о сокетах, сетевых и файловых.
sockstat -l — список портов открытых на прослушивание
sockstat -c список установленных соединений
sockstat -4, -6 — по протоколу ipv4 или ipv6
lsof — показывает информацию от откртых сокетах, файлах и сетевых соединениях.
lsof -i -n — показывает открытые интернет-соединения
lsof -i -n |grep ESTABLISHED — показывает открытые, и установленные сетевые соединения