Команды мониторинга нагрузки сервера
Как быстро диагностировать проблему на сервере? Для этого есть несколько удобных команд.
top
Команда показывает текущие задачи которые обслуживаются ядром. По умолчанию, команда top автоматически обновляет эти данные каждые пять секунд:

Никто не использует и половины фишек, которые доступны в этой команде. Если нажать на кнопку h откроется мануал по команде.
С помощью кнопки k можно выключить любой процесс по его PID.
С помощью кнопки x можно менять колонку, по которой сортируются процессы.
Команда выводит базовую информацию о процессах, процессоре и памяти. Процессорное время распределено по таким типам:
- us: время, проведенное под пользовательские задачи.
- sy: время, потраченное на работу ядра/системы.
- id: время ожидания (процессор ничего не делает).
- wa: время, затраченное на ожидание диска/сети/…
- st: время, “украденное” из виртуальной машины (платформой виртуализации, плохо когда оно большое).
vmstat
Команда vmstat покажет снепшот процессора, IO, процессов, и памяти:
Первые колонки показывают процессы:
- r: процессы, ожидающие процессора
- b: процессы, ожидающие диска/сети/пользователя и т.п.
Оба показателя должны стремиться к нулю.
Следующие колонки показывают использование памяти:
- swpd: размер используемого свопа, плохо если значительно больше нуля
- free: свободная память, это должно стремиться к нулю
- buff: всякие буферы (например на I/O операциях)
- cache: кэш операционной системы
Дальше идет инфа о вводе/выводе:
- bi: полученные блоки от устройства (типа диска)
- bo: отправленные блоки на устройство
Дальше идут данные о прерываниях (in) и переключениях контекста (cs), а также данные об использовании процессора (формат такой же, как и у команды top).
Vmstat показывает краткосрочную картинку, однако стоит иметь представление и о долгосрочных трендах (это дальше).
iostat
Команда показывает три отчета: использование процессора, утилизацию i/o и сетевой подсистемы. Если запустить команду без параметров, она будет покажет минимум инфы:
По-умолчанию, iostat выводит довольно мало информации. Рассмотрим наиболее полезные ключи:
-d – отображать только использование дисков;
-c – отобразить только использование CPU;
-j – отобразить имя раздела (ID | LABEL | PATH | UUID);
-k – отобразить данные в килобайтах;
-m – отобразить данные в мегабайтах;
-p – отобразить статистику по указанному блочному устройству;
-t – отобразить время выполнения теста;
-x – отобращить расширенную статистику;
Используйте man iostat для дополнительной информации по выводу
free
Команда показывает статистику памяти и свопа:

Опции
Опция -b показывает количество памяти в байтах; опция -k (по умолчанию) поазывает количество пвмяти в килобайтах; Опция -m показывает количество памяти в мегабайтах.
Опция -t показывает строки содержащие полное количество памяти.
Опция -o запрещает показывать строки относящиеся к “массиву буфера” . Если не определено отнять/добавить память буферов из/в используемую/свободнуб память (соответственно!).
Опция -s разрешает безостановочно выводить информацию с промежутком в delay секунд. Вы можете насамом деле определить любое число с плавающей точкой для delay, usleep(3)
используется для разрешения микросекунд в задержке.
Опция -V показывает информацию о версии программы./proc/meminfo— информация о памяти
Количество используемой памяти (used) в хорошем случае должно стремиться ко всей доступной памяти (total), однако swap должен быть минимальным (или нулевым, как у нас).





Comments
So empty here ... leave a comment!