Назад | Перейти на главную страницу

Нужен совет, чтобы найти узкое место сервера Samba

Структура моей локальной сети:

Клиент загружает файл размером 310 МБ, который занимает 42,1 с, то есть 7,36 МБ / с. Результат профилирования (стек linux маршрутизатора NAS имеет построенный oprofile) во время передачи показывает, что примерно 37% процессорного времени находится в функции default_idle. Я хочу понять, почему так много default_idle.

Вот как я это сделал:

  1. Скопировал файл с USB на ramfs роутера. Скорость загрузки достигает 15 МБ / с.

  2. Я создаю iperf в маршрутизаторе NAS и на ПК, чтобы проверить максимальную скорость передачи сети. Результаты iperf показывают, что максимальная скорость составляет около 11,4 МБ / с в обоих направлениях.

Что ж, теперь кажется, что ограничение в 7,36 МБ / с вызвано набором самбы. Чтобы найти место, где причина этого ограничения, возможно, поможет объяснить высокую часть функции default_idle.

Но я не знаю, как продолжить. Пожалуйста, дайте несколько советов и предложений.

Спасибо

анекдотично, но мой друг работал с беспроводной доставкой HD-видео и обнаружил значительное увеличение пропускной способности при переключении на NFS с Samba .. он сказал, что в 2-3 раза быстрее. Я полагаю, это согласуется с тем, что утверждал адаптер

SMB имеет значительные накладные расходы протокола; К сожалению, это нельзя «исправить».

Поскольку вы, очевидно, работаете на 100 Мбит, «теоретический» практический предел iperf в 11,4 МБ / с никогда не будет достигнут ни одной полезной нагрузкой; Я говорю «теоретический», потому что iperf предполагает идеальные условия и не принимает во внимание какие-либо сбои окон, ошибки или повторные передачи; он измеряет чисто низкоуровневую пропускную способность IP-пакетов.

Если вы можете настроить ftpd на маршрутизаторе и проверьте это, вы обнаружите, что можете приблизиться к этому пределу пропускной способности 11,4 МБ (известно, что FTP имеет наименьшие накладные расходы по сравнению с любым протоколом передачи файлов). В качестве альтернативы посмотрите, чего вы можете достичь, просто используя netcat для перекачки данных в файл или из файла.