У каждого администратора который управляет Linux-серверами в своем арсенале есть свои наработки. Для быстрого анализа производительности сервера и диагностики возникающих проблем он использует проверенный годами набор команд.
Евгений Лебедь имеет следующие:
1) команда top выводит текущие процессы, которые обрабатываются ядром. По умолчанию данные обновляются каждые пять секунд.
2) с помощью команды vmstat можно увидеть краткосрочный снимок процессора, памяти, процессов и операций ввода/вывода.
3) с помощью команды iostat можно получить отчет об использовании процессора, нагрузке на дисковую и сетевую подсистему:
# iostat -x 5 - получать данные о нагрузке на жёсткий диск каждые 5 секунд
Однако iostat является частью пакета системных утилит контроля производительности Sysstatl. Имеет смысл использовать весь пакет. Sysstat сообщает информацию о системе, скорость операций ввода-вывода, объем использования выполняемыми процессаим раздела/файла подкачки, прерываний, сети, памяти, центрального процессора, задействования ядра, tty и другое, в том числе с поддержкой многопроцессорных машин.
Sysstat содержит следующие утлиты:
* sar: отчеты с информацией о системе
* iostat: отчеты об использовании процессора и дискового ввода/вывода
* mpstat: отчеты об использовании процессора как полностью так поядерно
* pidstat: отчеты об задачах (процессах)
* sadf: отчёты by sar в различных форматах
* cifsiostat: отчёты об операциях ввода-вывода для файловой системы CIFS
* nfsiostat-sysstat: (устаревшее) отчёты об операциях ввода-вывода для сетевых файловых систем
Для установки пакета следует выполнить команду # apt-get install sysstat
4) информацию об использовании оперативной памяти и свопа можно увидеть с помощью команды free.
5) утилита командной строки lsof (List Open Files) используется для получения информации об открытых различными процессами файлах (а с точки зрения unix все является файлами - каталоги, устройства, сокеты и т. д.):
-увидеть процессы, использующие файл можно просто передав имя файла в качестве аргумента:
lsof /var/log/syslog
-увидеть список процессов, использующие файлы в конкретном каталоге можно с помощью опции +D:
lsof +D /var/log/
-увидеть список открытых файлов определенным процессом (или несколькими процессами) можно с помощью -с <имя_процесса>:
lsof -c ssh -c monit
-увидеть процессы, использующие каталог (например, точку монтирования) можно так:
lsof /var/spool/asterisk
-список файлов, открытых определенным пользователем можно так:
lsof -u user1
-просмотреть список файлов, использующихся конкретным процессом:
lsof -p 20263
-вывести только PID процесса, использующего файл:
lsof -t /var/log/syslog
-использовать lsof можно в цикле. Этот режим включается с помощью опции -r или +r, причем дополнительно можно указать таймаут между выполнениями цикла (в секундах). Результат вывода каждого цикла будет отделен символами «=======»:
lsof -c rsyslogd -r5
-посмотреть список окрытых сетевых соединений можно с помощью опций -i (все), -i4 (IPV4) и -i6 (IPV6):
sudo lsof -i4
-список сетевых соединений, использующих определенный порт можно увидеть так:
lsof -i :25
-отфильтровать открытые сетевые соединения по протоколу TCP:
lsof -i tcp
No comments:
Post a Comment
А что вы думаете по этому поводу?