Содержание

Как читать вывод утилиты vmstat

Утилита vmstat служит для определения производительности системы. Наиболее эффективным средством для оценки необходимого объема ресурсов является команда vmstat, которая предоставляет информацию о загруженности процессора, интенсивности операций дискового ввода-вывода и использовании оперативной памяти. Если вы укажете в команде vmstat довольно большой период сбора информации, например, 10 секунд, то выполнение этой команды не потребует много процессорного времени.

Ключи запуска vmstat

Расшифровка вывода vmstat

Выдавать информацию о состоянии системы каждые 10 секунд, количество запросов 3 (если не указано - выводить бесконечно).

# vmstat 10 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  18616 8160120 329144 5773240    0    0     8    58    0    2  5 10 81  4  0	
 1  0  18616 8159608 329152 5773372    0    0     0   312 6485 2252  3  8 87  3  0	
 1  0  18616 8159932 329164 5773464    0    0     0   323 6703 1760  3  8 87  2  0	

Первый отчет команды vmstat содержит информацию, накопленную с момента загрузки системы до вызова команды vmstat. В каждом следующем наборе выдается информация, собранная за предшествующий интервал времени (в данном случае - за 10 секунд).

Если в отчете команды vmstat указано значительное время ожидания ввода-вывода (колонка wa), то рекомендуется вызвать команду iostat мониторинг использования дисковых разделов в Linux для получения более подробной информации.

Для получения информации о работе процессора удобнее использовать команду vmstat, а не iostat мониторинг использования дисковых разделов в Linux, так как ее построчный вывод проще анализировать, а в случае, когда к системе подключено много дисков, ее вывод намного менее объемный.

Для систем SMP в столбцах us, sy, id и wa указываются средние значения по всем процессорам (статистическую информацию об отдельных процессорах можно получить с помощью команды sar). SMP означает "Symmetric Multiprocessing" (Симметричное мультипроцессорное устройство). Это архитектура компьютерной системы, в которой два или более процессора подключены к общей памяти и работают независимо друг от друга. В системе SMP каждый процессор имеет доступ ко всем устройствам в системе и выполняет любую задачу, которая ему назначена операционной системой. Как правило, SMP обеспечивает лучшее использование ресурсов процессора и повышает производительность путем распределения задач между несколькими ядрами процессора.

Оптимальной является ситуация, когда процессор работает 100 процентов времени. Это условие всегда выполняется в однопользовательской системе, если в ней нет конкуренции за процессор. В общем случае, если суммарное время us + sy меньше 90 процентов, то считается, что производительность однопользовательской системы не ограничена ресурсами CPU. Однако если значение us + sy в многопользовательской системе превышает 80 процентов, то некоторые процессы часть времени находятся в состоянии ожидания. Это может отрицательно сказаться на времени ответа и скорости работы приложений.

В столбцах procs указывается следующее:

В столбцах memory указывается следующее:

В столбцах swap указывается следующее:

В столбцах io указывается следующее:

В столбцах system указывается следующее:

В столбцах cpu указывается следующее:

Тестирование (ключ -s)

Команда, вызванная с опцией -s, записывает в стандартный поток вывода итоговый отчет, который содержит суммарные значения показателей использования памяти, подсчитанные за все время, прошедшее с момента инициализации системы. Эту команду рекомендуется вызывать дважды: до запуска оцениваемой рабочей схемы и после выполнения этой рабочей схемы. Дальше нужно оценить разницу между значениями, полученными в двух отчетах команды.

# vmstat -s
     16466952  total memory
      8285512  used memory
      5892652  active memory
      1866492  inactive memory
      8181440  free memory
       328016  buffer memory
      5760296  swap cache
     33554428  total swap
        18616  used swap
     33535812  free swap
     40500144 non-nice user cpu ticks
        24099 nice user cpu ticks
     73358814 system cpu ticks
    621996375 idle cpu ticks
     27013089 IO-wait cpu ticks
         3765 IRQ cpu ticks
      2669106 softirq cpu ticks
            0 stolen cpu ticks
     62505600 pages paged in
    440512908 pages paged out
        40447 pages swapped in
        49665 pages swapped out
   2101180370 interrupts
   1341529089 CPU context switches
   1328433299 boot time
      1574891 forks