Хорошо, есть немного больше истории, чем подразумевает название.
Предпосылки и среда: я копирую несколько ТБ со старого сервера 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 дня), и мне интересно, что я могу сделать, чтобы выяснить, где находится узкое место.
Симптомы: ЦП на обоих компьютерах минимален и, конечно, не слишком загружен. Жесткие диски на обоих компьютерах активны, но не перегружены, а загрузка процессора составляет почти 0% по крайней мере на сервере Ubuntu.
Я провел трассировку Wireshark в течение 35 секунд (предположительно, достаточно долго, чтобы убедиться, что все ACK были для новых пакетов) и заметил, что было довольно много вещей, которых я не ожидал. (1) Не было никаких контрольных сумм для ACK (и НЕКОТОРЫХ SMB-пакетов) от Windows до Ubuntu. Однако Wireshark утверждает, что это может быть связано с «разгрузкой контрольной суммы IP». Хорошо, у меня там очень хорошая карта. Я полагаю, возможно, что сетевая карта может делать вычисления контрольной суммы. Хорошо. Двигаемся дальше ... (2) "TCP ACKed невидимый сегмент". С этим у меня проблема. Номер ACK находится в допустимом диапазоне от того, что я могу сказать, и часто есть огромные блоки этих сообщений. Возможно, Wireshark слишком медленный?
Резюме: Скорость передачи отстой (20 МБ / с по гигабитному Ethernet), и я не знаю почему. Wireshark утверждает, что Windows ACKing вещи, которые никогда не были отправлены Ubuntu.
Угадайте: мое первоначальное предположение заключается в том, что более дешевые карты Розвилла заболочены. Мое второе предположение состоит в том, что программные RAID-подобные вещи на одном конце или другом заполняются чем-то, что нужно делать.