Недавно я установил сервер samba на рабочем столе ubuntu для обслуживания общего каталога еще четырех рабочих столов ubuntu. Они находятся в Гигабитной ЛВС. У меня плохая производительность, и я не чувствую, что ни диск, ни сеть не переполнены. Я подозреваю, что я могу кое-что настроить ...
Сервер самбы обслуживает пару десятков каталогов с большими файлами (около 100 МБ каждый). Затем у меня на каждой клиентской машине выполняется четыре задания, которые интенсивно читают эти файлы. Итого 16 рабочих мест. Задания должны иметь загрузку ЦП близкую к 100%. Но с этой настройкой самбы их процессор загружается очень быстро и во многих случаях очень мало. Вот вывод сервера iostat -x 5.
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 5.60 1.20 148.00 0.60 19532.00 7.20 262.98 9.74 65.91 65.71 113.33 6.73 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.60 0.00 3.20 23.40 0.00 72.80
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 4.40 2.80 165.00 0.60 21676.00 13.60 261.95 9.24 56.11 55.98 92.00 6.04 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.30 0.00 2.51 24.71 0.00 72.48
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 3.40 1.80 149.40 0.40 19120.00 8.80 255.39 9.22 61.09 60.92 128.00 6.68 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.30 0.00 2.34 27.67 0.00 69.69
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 3.00 0.00 135.60 0.00 17572.80 0.00 259.19 12.07 86.05 86.05 0.00 7.37 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 2.81 22.01 0.00 74.64
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 145.40 0.00 18588.00 0.00 255.68 12.12 85.74 85.74 0.00 6.88 100.08
avg-cpu: %user %nice %system %iowait %steal %idle
0.25 0.00 2.79 22.49 0.00 74.46
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 134.20 0.00 17074.40 0.00 254.46 12.42 92.88 92.88 0.00 7.45 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 2.77 25.21 0.00 71.51
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.20 0.00 141.20 0.00 18042.40 0.00 255.56 12.12 85.68 85.68 0.00 7.08 100.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.25 0.00 2.89 22.40 0.00 74.46
Таким образом, скорость чтения с диска составляет менее 20 МБ / с. Я думаю, что диск может обеспечить скорость чтения не менее 50-60 МБ / с. Как я мог отладить это дальше? Может быть проблема в сети? Или проблема с настройкой самбы?
РЕДАКТИРОВАТЬ: Я заметил, что число% util от iostat уже составляет 100%, а% iowait больше 20%. Значит диск уже насыщен? но достигает только скорости чтения 20 МБ / с? Как я могу интерпретировать числа iostat и правильно оптимизировать мою систему?
Я думаю, что это скорее проблема ожидания, чем реальная проблема. С 16 заданиями, выполняемыми одновременно на одном диске SATA потребительского уровня на этом настольном компьютере, я бы сказал, что 20 МБ / с - это прилично.
Посмотрев на свой вывод iostat, вы увидите, что происходит около 150 операций ввода-вывода в секунду при чтении, и это почти все, что вы получите от диска SATA 7200 об / мин.