Intel Network Card on Linux server - limited performance despite bonding ports

Я взял на себя управление сервером Debian 7 с сетевым адаптером Intel, порты которого соединены вместе для балансировки нагрузки. Это оборудование:

lspci -vvv | egrep -i 'network|ethernet'
04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

Во-первых, меня смущает то, что показаны четыре входа, а система показывает eth0 - eth3 (четыре порта), хотя в спецификации NIC всего два порта. Однако на самом деле только eth2 и eth3 работают и работают, следовательно, два порта:

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT qlen 1000
    link/ether 00:25:90:19:5c:e4 brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT qlen 1000
    link/ether 00:25:90:19:5c:e7 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:25:90:19:5c:e6 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:25:90:19:5c:e5 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT 
    link/ether 00:25:90:19:5c:e6 brd ff:ff:ff:ff:ff:ff

Проблема в том, что я получаю более низкие скорости, чем ожидалось. При запуске двух экземпляров iperf (по одному на каждый порт) я получаю только комбинированные скорости 942 Мбит / с, 471 Мбит / с на порт. Я ожидал большего, поскольку каждый порт может делать 1 Гбит / с! Почему - не настроено ли связывание для максимальной производительности?

[  3] local xx.xxx.xxx.xxx port 60868 connected with xx.xxx.xxx.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-180.0 sec  9.87 GBytes   471 Mbits/sec
[  3] local xx.xxx.xxx.xxx port 49363 connected with xx.xxx.xxx.xxx port 5002
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-180.0 sec  9.87 GBytes   471 Mbits/sec

Конфигурация связывания в / etc / network / interfaces:

auto bond0
iface bond0 inet static
    address xx.xxx.xxx.x
    netmask 255.255.255.0
    network xx.xxx.xxx.x
    broadcast xx.xxx.xxx.xxx
    gateway xx.xxx.xxx.x
    up /sbin/ifenslave bond0 eth0 eth1 eth2 eth3
    down /sbin/ifenslave -d bond0 eth0 eth1 eth2 eth3

Настроенный режим связывания: Я нашел ответ благодаря пункту, изложенному ниже. Система работала в режиме связывания 5 (TLB), чтобы получить удвоенную скорость, она должна работать в режиме связывания 4 (агрегация динамических каналов IEEE 802.3ad). Спасибо!

0
задан 13 September 2017 в 15:27
1 ответ

Если вы знаете только два порта и у вас только два порта, то вы должны:

  1. выяснить, что происходит с двумя другими портами, которые вы в данный момент не видите. Может быть, они интегрированы в серверную материнскую плату, или даже подключены к чему-то, чего вы не ожидаете.
  2. Только соедините в конфигурации вашей программной сети то, что вы физически подключили к одному коммутатору.

После того, как вы позаботились об этом, вы можете более адекватно найти информацию, необходимую для определения проблем с производительностью.

*.
1
ответ дан 4 December 2019 в 16:08

Теги

Похожие вопросы