Почему наблюдается высокая загрузка ЦП при выполнении операций ввода-вывода?

Почему наблюдается высокая загрузка ЦП при выполнении операций ввода-вывода?

У меня есть процесс записи двоичных файлов в файловую систему ext3.

Я бы предположил, что это должен быть довольно простой процесс для ЦП, но я вижу 45% использования ЦП системы. Это 40-ядерный 80-поточный сервер, и есть массив RAID 1+0 из 16 дисков.

100 потоков выполняют IO одновременно. Нормально ли, что используется почти половина системного ЦП? Есть ли способ проанализировать, почему он использует так много ЦП?

Загрузка ЦП пользователя составляет около 10-15%.

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

вот что я вижу с

iostat -xkt 1

03/07/2014 01:06:28 PM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          16.14    0.00   43.24    0.01    0.00   40.60

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00   166.00    0.00   69.00     0.00   940.00    27.25     0.02    0.23   0.17   1.20
sda               0.00   322.00    1.00  598.00   128.00  3680.00    12.71     0.07    0.12   0.09   5.50
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00  235.00     0.00   940.00     8.00     0.06    0.26   0.05   1.10
dm-4              0.00     0.00    1.00  920.00   128.00  3680.00     8.27     0.10    0.11   0.06   5.40

решение1

Усреднение нагрузки Linux и некоторые мониторы нагрузки (вверху) будут отображать io-wait как нагрузку.

По сути, когда ЦП ожидает на устройстве ввода-вывода (и не обрабатывает другую нагрузку), он все равно считается «загруженным» и, следовательно, влияет на средние показатели нагрузки.

Связанный контент