У меня есть процесс записи двоичных файлов в файловую систему ext3.
Я бы предположил, что это должно быть довольно простым процессом на процессоре, но я вижу, что загрузка процессора составляет 45%. Это 40-ядерный 80-потоковый сервер с массивом RAID 1+0 16 дисков.
Есть 100 потоков, выполняющих ввод-вывод одновременно. Это нормально, когда используется почти половина системного процессора? Есть ли способ проанализировать, почему он использует так много процессора?
Пользовательский процессор составляет около 10-15%.
Процесс такой: мы читаем некоторые данные из файла, проверяем, находятся ли данные в дБ, затем записываем данные в файлы. БД находится на другой машине, логирование также на другой машине. Что происходит, мы проверяем, существует ли файл там, обычно его там нет, поэтому мы создаем новый файл и записываем в него некоторые данные.
вот что я вижу с
иостат -хкт 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