Средняя опорная частота жесткого диска

Как найти, как часто Ubuntu часто относится к жесткому диску (для чтения / цели записи) и как скорректировать его?

1
задан 4 March 2017 в 08:10

1 ответ

Команда для создания этих наблюдений iostat
и содержится в пакете sysstat. Установите его [для систем, которые не имеют его] с:

sudo apt-get -y install sysstat

Это может использоваться соответственно:

$ iostat

Linux 4.4.0-64-generic (george-HP-Pavilion-17-Notebook-PC)  04/03/2017  _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.56    0.02    2.17    1.67    0.00   91.59

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.02         0.00       1093          0
loop1             0.04         0.04         0.00       1799          0
loop2             0.18         0.20         0.00       9607          0
loop3             0.00         0.02         0.00       1079          0
loop4             0.00         0.00         0.00        108          0
sda               7.70        87.28       178.21    4194476    8564449
scd1              0.00         0.00         0.00        166          0

Получение в megabytes:

$ iostat -m

Linux 4.4.0-64-generic (george-HP-Pavilion-17-Notebook-PC)  04/03/2017  _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.56    0.02    2.17    1.67    0.00   91.59

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
loop0             0.00         0.00         0.00          1          0
loop1             0.04         0.00         0.00          1          0
loop2             0.18         0.00         0.00          9          0
loop3             0.00         0.00         0.00          1          0
loop4             0.00         0.00         0.00          0          0
sda               7.69         0.09         0.17       4096       8370
scd1              0.00         0.00         0.00          0          0

Расширьте отчет с помощью -x parameter:

$ iostat -x


Linux 4.4.0-64-generic (george-HP-Pavilion-17-Notebook-PC)  04/03/2017  _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.56    0.02    2.17    1.67    0.00   91.59

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.02     0.00    28.76     0.00   53.89   53.89    0.00  28.74   0.00
loop1             0.00     0.00    0.04    0.00     0.04     0.00     2.09     0.00   76.24   76.24    0.00   3.18   0.01
loop2             0.00     0.00    0.18    0.00     0.20     0.00     2.23     0.00   20.97   20.97    0.00   1.22   0.02
loop3             0.00     0.00    0.00    0.00     0.02     0.00    25.69     0.00   47.00   47.00    0.00  32.43   0.01
loop4             0.00     0.00    0.00    0.00     0.00     0.00     6.55     0.00   42.30   42.30    0.00  28.97   0.00
sda               0.36     7.68    3.05    4.64    87.12   178.06    68.95     0.29   37.84   35.88   39.14   4.88   3.75
scd1              0.00     0.00    0.00    0.00     0.00     0.00     9.49     0.00   11.20   11.20    0.00  10.17   0.00

Добавьте задержку с результатом ouput. Это представит 3 отчета с интервалом 2 секунд:

$ iostat -k 2 3


Linux 4.4.0-64-generic (george-HP-Pavilion-17-Notebook-PC)  04/03/2017  _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.56    0.02    2.17    1.67    0.00   91.59

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
loop0             0.00         0.00         0.00          1          0
loop1             0.04         0.00         0.00          1          0
loop2             0.18         0.00         0.00          9          0
loop3             0.00         0.00         0.00          1          0
loop4             0.00         0.00         0.00          0          0
sda               7.69         0.09         0.17       4096       8375
scd1              0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.03    0.00    1.64    0.63    0.00   93.70

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
loop0             0.00         0.00         0.00          0          0
loop1             0.00         0.00         0.00          0          0
loop2             0.00         0.00         0.00          0          0
loop3             0.00         0.00         0.00          0          0
loop4             0.00         0.00         0.00          0          0
sda               1.50         0.00         0.01          0          0
scd1              0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.16    0.00    2.28    0.51    0.00   94.06

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
loop0             0.00         0.00         0.00          0          0
loop1             0.00         0.00         0.00          0          0
loop2             0.00         0.00         0.00          0          0
loop3             0.00         0.00         0.00          0          0
loop4             0.00         0.00         0.00          0          0
sda               0.50         0.00         0.00          0          0
scd1              0.00         0.00         0.00          0          0

Теперь видеть его непрерывно с интервалом 2 секунд:

$ iostat 2

Вот то, как прочитать отчеты о iostat

The first section contains CPU report

%user : show the percentage of CPU utilization that occured while executing at the user (application) level
%nice : show the percentage of CPU utilization that occured while executing at the user level with nice priority
%system : show the percentage of CPU utilization that occured while executing at the system (kernel) level
%iowait : show the percentage of the time that the CPU or CPUs were idle during whcih the system had an outstanding disk I/O request
%steal : show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor
%idle : show the percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request

Второй раздел содержит отчет об использовании устройства

Device : device / partition name as listed in /dev directory
tps : show the number of transfers per second that were issued to the device. Higher tps means the processor is busier
Blk_read/s : show the amount of data read from the device expressed in a number of blocks (kilobytes, megabytes) per second
Blk_wrtn/s : show the amount of data written to the device expressed in a number of blocks (kilobytes, megabytes) per second
Blk_read : show the total number of blocks read
Blk_wrtn : show the total number of blocks written

Для второй части Вашего вопроса:

Планировщики ввода-вывода используются, чтобы изменить или оптимизировать I/O операции на Linux и различных типах включают:

  • CFQ [cfq] (Абсолютно Справедливая Организация очередей) является планировщиком ввода-вывода для ядра Linux и значения по умолчанию под многими дистрибутивами Linux.

  • Планировщик Noop (noop) является самым простым планировщиком ввода-вывода для ядра Linux, основанного на понятии очереди FIFO.

  • Упреждающий (упреждающий) планировщик является алгоритмом для планирования ввода/вывода жесткого диска, а также старого планировщика, который заменяется CFQ

  • Планировщик крайнего срока (крайний срок) – это пытается гарантировать время обслуживания запуска для запроса.

Видеть Ваш текущий дисковый планировщик:

sudo cat /sys/block/{DEVICE-NAME}/queue/scheduler

# where device name is [sda | sdb | ...]
# The one with the "[  ]" around it the one in use.

Каждый из них имеет их различные за и против. Изменить на любого из них их два метода:

  1. Во время выполнения:

    # echo scheduler_type_name > /sys/block/sda/queue/scheduler
    # echo noop > /sys/block/sda/queue/scheduler
    
  2. Для персистентности после reboot:

    a.Править vi /etc/default/grub, и

    b. Добавьте эту строку: GRUB_CMDLINE_LINUX="elevator=noop"

    c. Перезагрузка

    d. Посмотрите здесь для действий различия с помощью a postgresql

Источник:

https://blog.codeship.com/linux-io-scheduler-tuning/

https://www.cyberciti.biz/faq/linux-change-io-scheduler-for-harddisk/

https://unix.stackexchange.com/questions/48138/how-to-throttle-per-process-i-o-to-a-max-limit

http://linoxide.com/linux-command/linux-iostat-command/

2
ответ дан 7 December 2019 в 13:36

Другие вопросы по тегам:

Похожие вопросы: