Оценка производительности дисков командой vmstat

Команда iostat позволяет проверить, действительно ли низкая производительность системы связана с неэффективным выполнением операций дискового ввода-вывода.

Проанализировав столбец wa команды vmstat, можно прийти к аналогичному выводу (более подробная информация приведена в разделе Команда vmstat. Ниже перечислены другие источники полезной информации о дисковом вводе-выводе:

  • Столбец disk xfer в выводе команды vmstat
    Для просмотра статистической информации о логических дисках (до 4 дисков) введите следующую команду:
    # vmstat hdisk0 hdisk1 1 8
    kthr     memory             page              faults        cpu 
        disk xfer
    ----  ----------  ----------------------- ------------ ----------- ------
    r  b   avm   fre  re  pi  po  fr  sr  cy  in   sy  cs  us sy id wa  
    1 2 3 4
    0  0  3456 27743   0   0   0   0   0   0 131  149  28  0  1 99  0  
    0 0
    0  0  3456 27743   0   0   0   0   0   0 131   77  30  0  1 99  0  
    0 0
    1  0  3498 27152   0   0   0   0   0   0 153 1088  35  1 10 87  2  
    0 11
    0  1  3499 26543   0   0   0   0   0   0 199 1530  38  1 19  0 80  
    0 59
    0  1  3499 25406   0   0   0   0   0   0 187 2472  38  2 26  0 72  
    0 53
    0  0  3456 24329   0   0   0   0   0   0 178 1301  37  2 12 20 66  
    0 42
    0  0  3456 24329   0   0   0   0   0   0 124   58  19  0  0 99  0  
    0 0
    0  0  3456 24329   0   0   0   0   0   0 123   58  23  0  0 99  0  
    0 0

    В столбцах disk xfer указывается число операций передачи данных для указанных физических томов за интервал измерения. В отчете команды могут быть указаны имена от одного до четырех физических томов. Число операций выводится для каждого из заданных устройств в порядке их перечисления. Это значение отражает число запросов к физическому устройству. Оно не связано напрямую с объемом считанных или записанных данных. Несколько логических запросов могут объединяться в один физический запрос.

  • Столбец in вывода команды vmstat

    В этом столбце показана частота аппаратных прерываний (единиц в секунду) за интервал измерения. Прерывания отправляются при возникновении таких событий, как завершение выполнения запроса диском или истечение очередных 10 миллисекунд, измеряемых таймером. Последнее прерывание отправляется 100 раз в секунду, поэтому значение в поле in всегда больше 100. Команда vmstat позволяет получить более подробную информацию о прерываниях.

  • Вывод команды vmstat -i
    Команда с опцией -i позволяет узнать число прерываний, полученных каждым устройствам с момента запуска системы. Если в команде указан интервал сбора информации и, при необходимости, число отчетов, то статистика с момента запуска системы будет выведена только в первом разделе; в остальных разделах вывода будет приведена статистика за очередной интервал.
    # vmstat -i 1 2
    приоритет уровень тип    число модуль(обработчик)
        0       0   аппаратный   0 i_misc_pwr(a868c)
        0       1   аппаратный   0 i_scu(a8680)
        0       2   аппаратный   0 i_epow(954e0)
        0       2   аппаратный   0 /etc/drivers/ascsiddpin(189acd4)
        1       2   аппаратный 194 /etc/drivers/rsdd(1941354)
        3      10   аппаратный 10589024 /etc/drivers/mpsdd(1977a88)
        3      14   аппаратный 101947 /etc/drivers/ascsiddpin(189ab8c)
        5      62   аппаратный 61336129 clock(952c4)
       10      63   аппаратный 13769 i_softoff(9527c)
    приоритет уровень тип    число модуль(обработчик)
        0       0   аппаратный   0 i_misc_pwr(a868c)
        0       1   аппаратный   0 i_scu(a8680)
        0       2   аппаратный   0 i_epow(954e0)
        0       2   аппаратный   0 /etc/drivers/ascsiddpin(189acd4)
        1       2   аппаратный   0 /etc/drivers/rsdd(1941354)
        3      10   аппаратный  25 /etc/drivers/mpsdd(1977a88)
        3      14   аппаратный   0 /etc/drivers/ascsiddpin(189ab8c)
        5      62   аппаратный 105 clock(952c4)
       10      63   аппаратный   0 i_softoff(9527c)
    Прим.: Вывод этой команды зависит от системы, ее аппаратной и программной конфигурации (например, прерывания от таймера могут быть не показаны в выводе команды vmstat -i, хотя они и учитываются в столбце in вывода команды vmstat). Обратите внимание на большие значения в столбце count; постарайтесь выяснить причину, по которой соответствующему модулю пришлось отправить большое число прерываний.