10 Иструментов для мониторинга Linux систем

Возникла необходимость мониторинга производительности сервера Linux? Рассмотрим несколко встроеных систем мониторига и несколько дополнительных. Большинство дистрибутивов Linux оснащены тоннами инструменатми  мониторинга. Эти инструменты обеспечивают получение данных, которые могут быть использованы для получения информации о деятельности системы. Вы можете использовать эти средства для выявления возможных причин проблем производительности. Речь идет о системе анализа и отладки сервера в таких  вопросах, как:

  • Выявление узких мест.
  • Выявление на диске узких мест.
  • Моиторинг производительности процессора и памяти  
  • Выявление в сети узких мест.

№1: top - Монитор запущеных процессов

Top - обеспечивает динамическое отображения процессов и их деятельности в  режиме реального времени. По умолчанию, он показывает какие процессы наиболее интенсивно используют ресурсы процессора , список обновляется каждые пять секунд.


№2: vmstat - Активность системы, оборудование и системная информация

Команда vmstat выводит информацию о процессах, памяти, подкачки, блок IO , загрузку процессора .Пример вывода: 

procs      memory      page                    disks     faults         cpu
r b w     avm    fre   flt  re  pi  po    fr  sr ad0 da0   in   sy   cs us sy id
2 0 0    637M    47M    80   0   0   0    71  20   0   0  242 1092 1018  4  4 92
2 0 0    637M    47M     1   0   0   0     0   0   1   4 1430 6476 3890  6 11 84
1 0 0    637M    45M     0   0   0   0     0   0   0   7 1655 6723 4411  5 12 83
1 0 0    637M    44M     0   0   0   0     0   0   0   5 1509 6570 4058  5 12 84
1 0 0    637M    43M     0   0   0   0     2   0   4   6 1581 6652 4202  5 14 81
1 0 0    637M    43M     0   0   0   0     0   0   0   4 1419 6408 3853  5 13 82
1 0 0    637M    42M     0   0   0   0     0   0   0   5 1513 6575 4053  5 13 81
^Z

Отображение использования памяти Slabinfo

# vmstat -m

Получение информации о активных/неактивных PageMemory

# vmstat -a

№3: - Выяснить кто залогиненлся в ОС и что он делает.

Комманда  w показывает информацию о текущих пользователях на машине и принадлежащие им процессы 

# w username
# w vivek

Пример вывода:

%w dark
1:13PM  up 1 day, 23:31, 2 users, load averages: 0.30, 0.32, 0.30
USER             TTY      FROM              LOGIN@  IDLE WHAT

№4: uptime - Расскажет Вам о том, сколько работает система

Команда покажет - текущее время, как долго система была запущена, сколько пользователей в настоящее время входа в систему, и среднее значение загрузки системы за последние 1, 5 и 15 минут.Пример использования:

%uptime
2:08PM  up 263 days, 26 mins, 2 users, load averages: 0.26, 0.24, 0.24

№5: ps- Показывает процессы

Команда ps - Покажет снимок текущих процессов . Что бы увидеть все процессы используйте опцию - A или -e : Пример вывода: 

%ps -A
PID  TT  STAT      TIME COMMAND
0  ??  DLs    0:01.02 [kernel]
1  ??  ILs    0:00.03 /sbin/init --
2  ??  DL     0:13.04 [g_event]
3  ??  DL     0:34.80 [g_up]
4  ??  DL     0:52.87 [g_down]
5  ??  DL     0:00.00 [xpt_thrd]
6  ??  DL     0:01.26 [fdc0]
7  ??  DL     0:00.00 [sctp_iterator]
8  ??  DL     0:10.10 [pagedaemon]
9  ??  DL     0:00.00 [vmdaemon]
10  ??  DL     0:00.00 [audit]
11  ??  RL   2664:36.97 [idle]
12  ??  WL    40:06.84 [intr]
13  ??  DL     1:28.35 [yarrow]
14  ??  DL     0:14.62 [acpi_thermal]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
1212  v4  Is+    0:00.00 /usr/libexec/getty Pc ttyv4
1213  v5  Is+    0:00.00 /usr/libexec/getty Pc ttyv5
1214  v6  Is+    0:00.00 /usr/libexec/getty Pc ttyv6
1215  v7  Is+    0:00.00 /usr/libexec/getty Pc ttyv7
12287   0  Is     0:00.03 -sh (sh)
12299   0  S      0:00.30 csh
79276   0  T      0:00.04 top /z
79327   0  T      0:00.03 top
80578   0  T      0:00.03 top /z ...... ...... , , ....
80717   0  T      0:00.25 vmstat 3
82496   0  R+     0:00.01 ps -A
76260   1  Is     0:00.03 -sh (sh)
76261   1  I+     0:00.06 csh

№7: iostat - Показывает среднюю загрузку процессора, использование диска

Комманда iostat дает Вам отчет об использовании вашего CPU, статистику ввода/вывода для устройств, разделов и сетевых файловых систем. Пример вывода:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
3.50    0.09    0.51    0.03    0.00   95.86
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              22.04        31.88       512.03   16193351  260102868
sda1              0.00         0.00         0.00       2166        180
sda2             22.04        31.87       512.03   16189010  260102688
sda3              0.00         0.00         0.00       1615          0

№8: sar - Сбор и доклад о деятельности системы

Команда используется для сбора и  сохранения информации о деятельности системы.Пример вывода:

$ sar 4 5 
Linux 2.6.32-22-generic (darklinux)     30.05.2010      _i686_  (2 CPU)
12:28:13        CPU     %user     %nice   %system   %iowait    %steal     %idle
12:28:17        all     12,04      0,00      3,81      0,00      0,00     84,15
12:28:21        all     12,64      0,00      3,80      0,12      0,00     83,44
12:28:25        all     12,07      0,00      4,43      0,00      0,00     83,50
12:28:29        all     11,43      0,00      4,79      0,12      0,00     83,66
12:28:33        all     11,97      0,00      4,27      0,00      0,00     83,76
Среднее:     all     12,03      0,00      4,22      0,05      0,00     83,70

№9: mpstat - Использовние мультипроцессорных систем

Отображает  среднюю загрузку каждого процессора 0 - для превого, 1 - для второго, -P ALL -  среднюю загрузку для каждого. Пример вывода: 

$ mpstat -P ALL
Linux 2.6.32-22-generic (darklinux)     30.05.2010      _i686_  (2 CPU)
12:31:39     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
12:31:39     all   11,61    0,34    3,02    0,32    0,21    0,09    0,00    0,00   84,41
12:31:39       0   12,68    0,33    2,70    0,42    0,16    0,16    0,00    0,00   83,55
12:31:39       1   10,57    0,36    3,32    0,23    0,25    0,02    0,00    0,00   85,24

№10: pmap - использование процессорного времени:

Использование этой команды поможет в выявлении узких мест в памяти. Пример вывода: 

pmap -d 1204
1204:   /usr/bin/X :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-EUzO1b/database -nolisten tcp vt7
Address   Kbytes Mode  Offset           Device    Mapping
mapped: 0K    writeable/private: 0K    shared: 0K