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

Сетевая карта Intel на сервере Linux - ограниченная производительность, несмотря на соединение портов

Я взял на себя сервер 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 ссылка показать

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

Настроенный режим связывания:

cat / proc / net / bonding / bond0

 Bonding Mode: transmit load balancing

Вывод ifconfig:

bond0     Link encap:Ethernet  HWaddr 00:25:90:19:5c:e6  
          inet addr:xx.xxx.xxx.9  Bcast:xx.xxx.xxx.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fe19:5ce6/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:19136117104 errors:30 dropped:232491338 overruns:0 frame:15
          TX packets:19689527247 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:20530968684525 (18.6 TiB)  TX bytes:17678982525347 (16.0 TiB)

eth0      Link encap:Ethernet  HWaddr 00:25:90:19:5c:e4  
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:235903464 errors:0 dropped:0 overruns:0 frame:0
          TX packets:153535554 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:202899148983 (188.9 GiB)  TX bytes:173442571769 (161.5 GiB)
          Memory:fafe0000-fb000000 

eth1      Link encap:Ethernet  HWaddr 00:25:90:19:5c:e7  
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:3295412 errors:0 dropped:3276992 overruns:0 frame:0
          TX packets:152777329 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:213880307 (203.9 MiB)  TX bytes:172760941087 (160.8 GiB)
          Memory:faf60000-faf80000 

eth2      Link encap:Ethernet  HWaddr 00:25:90:19:5c:e6  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:18667703388 errors:30 dropped:37 overruns:0 frame:15
          TX packets:9704053069 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20314102256898 (18.4 TiB)  TX bytes:8672061985928 (7.8 TiB)
          Memory:faee0000-faf00000 

eth3      Link encap:Ethernet  HWaddr 00:25:90:19:5c:e5  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:229214840 errors:0 dropped:229214309 overruns:0 frame:0
          TX packets:9679161295 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13753398337 (12.8 GiB)  TX bytes:8660717026563 (7.8 TiB)
          Memory:fae60000-fae80000 

РЕДАКТИРОВАТЬ: Я нашел ответ благодаря пункту, изложенному ниже. Система работала в режиме связывания 5 (TLB), чтобы получить удвоенную скорость, она должна работать в режиме связывания 4 (агрегация динамических каналов IEEE 802.3ad). Спасибо!

Если вы знаете только о двух портах и ​​подключили только два порта, вам следует:

  1. Выясните, что происходит с двумя другими портами, которые вы в настоящее время не видите. Возможно, они интегрированы в материнскую плату сервера или даже подключены к тому, чего вы не ожидаете.
  2. Связывайте вместе в своей программной сетевой конфигурации только то, что вы физически подключили к одному коммутатору.

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