Я только что установил свежую FreeBSD 9.0 на новый сервер. В машине используется встроенный гигабитный NIC (Atheros AR8151). Он запускает Samba и FTP и имеет пул ZFS размером ~ 3 ТБ. Когда я загружаю файлы с некоторых хостов, я получаю действительно хорошую скорость чтения, близкую к 90 МБ / с по FTP. Но у некоторых других хостов действительно плохая производительность чтения, около 2 МБ / с. Сначала я подумал, что это была самба, но оказалось, что это не так. Я попытался загрузить несколько файлов с двух разных хостов за одним и тем же коммутатором, один из которых был машиной Ubuntu 10.10, другой работал под управлением Mac OS 10.4. Машина Ubuntu выдавала 2 МБ / с, а машина Mac OS - 10 МБ / с.
По запросу некоторые дополнительные сведения о сети и тестовой настройке. Сеть, о которой идет речь, - это сеть моего университета, она не менее 1 Гбит.
У меня есть маршрутизатор NetGear WNDR3700, на котором работает OpenWRT. WNDR подключен к переключателю HP Procurve (который находится вне моего контроля). Procurve дополнительно подключается к университетской сети через оптоволокно.
Сервер работает на Intel Celeron G540 с вышеупомянутой сетевой картой. Он подключен напрямую к WNDR3700 с помощью gbit ethernet. Чтобы проверить и диагностировать проблему, я загрузил и загрузил на сервер несколько файлов размером 1,5 ГБ, используя несколько протоколов. Были использованы следующие машины и протоколы (загрузка - это трафик, исходящий с сервера):
Компьютер с Windows 7, подключенный к Procurve через gbit ethernet. Я смог выполнить только тест загрузки на этом, он составил около 2 МБ / с. Это ноутбук, которому меньше месяца.
Во-вторых, к WNDR подключена машина Linux Mint, этому компьютеру примерно 6 месяцев. Я сделал тест загрузки и загрузки на этом, оба с отличной производительностью. Я использовал FTP, SMB и scp.
Затем есть еще одна Linux-машина, работающая под управлением Ubuntu 10.10, опять же ноутбук, но этому было примерно 3 года. Он действительно плохо работал при передаче в обоих направлениях по всем 3 протоколам. Этот тоже был связан с Procurve.
Затем есть еще одна Linux-машина, я не знаю, какой дистрибутив она использует, потому что она не моя. Этот компьютер загрузил файл со скоростью 10 МБ / с как по SMB, так и по FTP. Снова подключился к Procurve (через 100mbit ethernet).
Затем есть 3-месячный Macbook Pro, подключенный через WIFI к WNDR, этот компьютер также отлично показал себя во всех тестах.
И, наконец, есть VPS, размещенный в паре сотен километров, я смог протестировать только FTP и scp на этом, но его производительность была хорошей.
Все эти тесты проводились пару раз в течение дня, и все тесты согласованы. Сначала я подумал, что это может быть Procurve, который совершенно новый, но, как вы можете видеть из списка, есть несколько компьютеров с отличной производительностью.
Проведя еще несколько тестов, я пришел к выводу, что это вообще не сервер. Я попытался перенести некоторые файлы из Mint в ящик Ubuntu с разными результатами: Mint -> Ubuntu: ~ 2 МБ / с Ubuntu -> Mint: ~ 20 МБ / с
И сервер, и коробка Mint - это действительно новые машины Sandy Bridge, в коробке Mint есть сетевая карта Realtek 8111E.
Я обнаружил проблему после долгого, долгого времени пробовать разные вещи. Оказывается, в одном из кабелей UTP оборвана одна из линий TX. Или, по крайней мере, он не работает на должном уровне. По-видимому, коммутатор Procurve будет использовать только 1 линию, если загружающий хост подключен через 100 Мбит. Странная проблема, но, по крайней мере, я в конце концов ее понял.