Хорошо, в этой истории есть нечто большее, чем предполагает название.
Предпосылки и среда : я копирую несколько ТБ со старого сервера Ubuntu на новый сервер Windows 2012 через SMB. (Технически, это стандартное оборудование, но они здесь серверы.) Все находятся в гигабитной локальной сети, а более старая версия Ubuntu имеет связанный интерфейс. Я полагаю, что на сервере Ubuntu есть две карты Ethernet Rosewill PCI-e 1x, а на сервере Windows - одна достаточно хорошая карта PCI Intel Ethernet.
На конечном компьютере (на сервере Windows) работает пул хранения с четностью более 4х2 ТБ дисков. Это работает новый ReFS от Microsoft. Исходный компьютер (сервер Ubuntu) работает с программным зеркалом RAID. Это хорошо работает EXT4.
Два сервера работают через один гигабитный коммутатор. Я экспериментировал с разрывом соединения на исходном компьютере (Ubuntu) без каких-либо улучшений.
Проблема : у меня нет проблем с передачей на разумных скоростях с других компьютеров на сервер Windows. Другие компьютеры могут хранить 50-80 МБ / с без особых затруднений, но скорость передачи с этого сервера Ubuntu достигает не более 20 МБ / с. 4 + ТБ со скоростью 20 МБ / с занимает много времени (примерно 2,3 дня), и мне интересно, что я могу сделать, чтобы выяснить, где находится узкое место.
Симптомы : ЦП на обоих компьютерах минимален и, конечно, не слишком загружен. Жесткие диски на обоих компьютерах активны, но не забиты, и IOwait ЦП составляет почти 0% как минимум на сервере Ubuntu.
Я провел трассировку Wireshark в течение 35 секунд (предположительно, достаточно долго, чтобы убедиться, что все ACK были для новых пакетов) и заметил, что было довольно много вещей, которых я не ожидал. (1) Не было никаких контрольных сумм для ACK (и НЕКОТОРЫХ SMB-пакетов) от Windows до Ubuntu. Однако Wireshark утверждает, что это может быть связано с «разгрузкой контрольной суммы IP». Хорошо, у меня там очень хорошая карта. Я полагаю, возможно, что сетевая карта может делать вычисления контрольной суммы. Хорошо. Двигаемся дальше ... (2) "TCP ACKed невидимый сегмент". С этим у меня проблема. Номер ACK находится в допустимом диапазоне от того, что я могу сказать, и часто есть огромные блоки этих сообщений. Возможно, Wireshark слишком медленный?
Резюме : Скорость передачи отстой (20 МБ / с по гигабитному Ethernet), и я не знаю почему. Wireshark утверждает, что Windows ACKing вещи, которые никогда не были отправлены Ubuntu.
Угадайте : мое первоначальное предположение состоит в том, что более дешевые карты Розвилла заболочены. Мое второе предположение состоит в том, что программные RAID-подобные вещи на одном конце или другом заполняются чем-то, что нужно делать.
sshd
поглощает 60% одного процессора на стороне Knoppix. В любом случае мой перевод близок к завершению. @Dom: Теперь, когда вы упомянули об этом, я не помню, чтобы все эти данные помещались туда гораздо быстрее, чем 30 Мбит / с.