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

Как достичь максимальной пропускной способности сети в Linux

Я хочу проверить, с какой максимальной пропускной способностью netwotk может справиться наш сервер Linux. Я использую один Dell R710 с двумя четырехъядерными процессорами Intel и 16 ГБ памяти. Я устанавливаю две карты Intel 82575Gb pcie, каждая имеет 4 порта И на борту есть 4 порта Broadcom BCM5709Gb. Таким образом, у меня всего 12 Gb портов.

Я написал простую тестовую программу udp для непрерывной отправки фиктивных данных udp через определенный nic с помощью connect (). Поэтому, когда я запускаю одну программу для отправки данных udp через один ник, я вижу, что пропускная способность сети составляет около 116 МБ / с для этого ник. Это разумный результат. Затем я запускаю другую тестовую программу для отправки udp через другой nic.

Окончательная максимальная пропускная способность сети, которую я получил, составляет около 1 ГБ / с. Это означает, что я могу запустить только 10 тестовых программ. Еще одна запущенная программа резко снизит производительность.

Мой вопрос: возможно ли использовать все 16 портов для передачи данных на полной скорости? Есть ли какие-либо ограничения пропускной способности, которые поддерживает Linux?

Я изменил некоторые параметры udp sysctl, но не работал. Память кажется достаточно большой, а ресурсов ЦП все еще достаточно. Может кто поможет мне настроить систему?

Как насчет 10 Гб ник? Если я установлю два из них, я не смогу разогнать их на полной скорости.

Любая помощь приветствуется.

Спасибо

Просто по теме максимального трафика, вместо написания собственной тестовой программы udp, iperf (пакет iperf в Debian / Ubuntu) - отличный инструмент для генерации пропускной способности TCP, но для него требуется удаленный хост с Linux с такой же или лучшей пропускной способностью сети:

Удаленный узел:

# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

На хосте хочу протестировать:

iperf -i 1 -c 192.168.15.6
------------------------------------------------------------
Client connecting to 192.168.15.6, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.15.132 port 37163 connected with 192.168.15.6 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.4 MBytes  95.2 Mbits/sec
[  3]  1.0- 2.0 sec  11.4 MBytes  95.3 Mbits/sec
[  3]  2.0- 3.0 sec  11.1 MBytes  93.1 Mbits/sec
[  3]  3.0- 4.0 sec  11.3 MBytes  94.8 Mbits/sec
[  3]  4.0- 5.0 sec  11.2 MBytes  94.2 Mbits/sec
[  3]  5.0- 6.0 sec  11.1 MBytes  93.5 Mbits/sec
[  3]  6.0- 7.0 sec  11.3 MBytes  95.0 Mbits/sec
[  3]  7.0- 8.0 sec  11.4 MBytes  95.3 Mbits/sec
[  3]  8.0- 9.0 sec  11.4 MBytes  95.2 Mbits/sec
[  3]  9.0-10.0 sec  11.7 MBytes  97.8 Mbits/sec
[  3]  0.0-10.0 sec    113 MBytes  94.6 Mbits/sec

Похоже, вы достигли максимальной пропускной способности шины. Сервер имеет два слота PCIe x8, каждый из которых позволит вам максимально использовать 4 ГБ портов. Встроенные порты Broadcom, вероятно, подключены к обычному старому PCI, так что вы не сможете максимизировать их - даже близко.

Вы правы, что он не сможет максимизировать две сетевые карты 10 ГБ / с. Оборудование просто не способно.