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

10-гигабитные сетевые карты показывают только половину пропускной способности

У меня 2 физических сервера:

  1. Двусторонний Intel E5504 @ 2 ГГц, 24 ГБ ОЗУ, 12x32 ГБ Intel X25-E SSD в RAID10.
  2. Intel Core2 6400 @ 2,12 ГГц, 3 ГБ ОЗУ, простой диск SATA 80 ГБ.

Обе машины работают Windows Server 2008 R2 сейчас и есть 10 Гбит Supermicro AOC-STGN-i2S (на самом деле они Intel 82599 с логотипом Supermicro) в слотах PCIe x4 - с подключенным двойным осевым кабелем SFP + между ними.

Второй сервер предназначен только для тестирования.

Сначала я установил ESXi на 2-й и использовал 1-й как хранилище данных.

Я заметил, что согласно CrystalDiskMark, виртуальная машина на ESX получила только 325 МБ / с скорость передачи seq (пробовал с NFS и ISCSI).

Я провел тот же тест на первом сервере локально и получил ~ 1000 МБ / с. Мне стало интересно, действительно ли сетевая ссылка убивает 2/3 скорости, поэтому я заменил второй жесткий диск, установил Windows Server 2008 R2 и попробовал Jperf и NTTtcp. Jperf показал 400 МБ / с а NTttcp показал 4300-4600Мбит / с. Диспетчер задач Windows показал около 600 000 000 байт за интервал, что соответствует 4,47 гигабит.

Я проверил, что оба конца имеют полный дуплекс, и попытался включить и выключить большие кадры на обоих концах, но разница составила всего 580 000 000 против 600 000 000 байт на интервал.

Почему наблюдаемая мной пропускная способность составляет лишь половину теоретического максимума в 10 гигабит?

ДОБАВЛЕНИЕ

Командные строки NTTtcp:

ntttcpr -m 6,0,192.168.137.1 -a 6 (receiver)
ntttcps -m 6,0,192.168.137.1 -a 6 (sender)

Я подозреваю, что ваши слоты PCI-e x4 - узкое место. Теоретическая пропускная способность этих слотов должна быть в диапазоне 16 Гбит / с (насыщая сетевую карту свободным местом), но это не всегда хорошо реализуется с точки зрения контроллера.

У вас есть слот x8 или выше, который вы можете украсть у чего-нибудь еще, чтобы проверить?