Перейти к содержимому
Калькуляторы

Полка в софт роутере

Добрый день всем, я начинающий сис админ, и есть одна специфическая задача и проблема.

Собрал linux soft router на процессоре AMD. Выполняет функции NAT + шейпер, столкнулся с проблемой - полка по трафику 100 МБит/с в сторону пользователей. При этом если полностью загрузить download, upload резко снижается. Шейпер на время тестов отключен.

 

Имеем два интерфейса

# lspci | grep Ethernet
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
04:00.0 Ethernet controller: Qualcomm Atheros AR8161 Gigabit Ethernet (rev 10)

 

# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
         inet addr: xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:xxx.xxx.xxx.xxx
         inet6 addr: fe80::96de:80ff:fe36:8040/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:180793214 errors:0 dropped:0 overruns:0 frame:0
         TX packets:166373269 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:10000
         RX bytes:173474056492 (173.4 GB)  TX bytes:109910034467 (109.9 GB)
         Interrupt:18

eth2.1000 Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
         inet addr:172.16.0.1  Bcast:172.16.0.255  Mask:255.255.255.0
         inet6 addr: fe80::6a05:caff:fe1f:880e/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:172972645 errors:0 dropped:0 overruns:0 frame:0
         TX packets:162051906 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:116948904210 (116.9 GB)  TX bytes:172161985340 (172.1 GB)

lo        Link encap:Локальная петля (Loopback)
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:25453 errors:0 dropped:0 overruns:0 frame:0
         TX packets:25453 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:4253665 (4.2 MB)  TX bytes:4253665 (4.2 MB)

 

# cat /proc/interrupts | grep eth
43:     100642  101150690   36673482      45871   PCI-MSI-edge      eth2-rx-0
44:          0   38945210          1   89018034   PCI-MSI-edge      eth2-tx-0
45:          0          0          0         10   PCI-MSI-edge      eth2
46:          0          0          1      47023   PCI-MSI-edge      eth1
47:         94          0          1      62867   PCI-MSI-edge      eth0
48:        305      19118   18086501    8601684   PCI-MSI-edge      eth0-TR-0
49:   91715854          0      82221      34102   PCI-MSI-edge      eth0-TR-1
50:      27761      19928          3   27759835   PCI-MSI-edge      eth0-TR-2
51:      69948    8480944     807610   25949874   PCI-MSI-edge      eth0-TR-3

 

# ethtool eth0
Settings for eth0:
       Supported ports: [ TP ]
       Supported link modes:   10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Supported pause frame use: Symmetric
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Advertised pause frame use: Symmetric
       Advertised auto-negotiation: Yes
       Speed: 1000Mb/s
       Duplex: Full
       Port: Twisted Pair
       PHYAD: 0
       Transceiver: internal
       Auto-negotiation: on
       MDI-X: Unknown
       Supports Wake-on: pg
       Wake-on: pg
       Current message level: 0x000060e4 (24804)
                              link ifup rx_err tx_err hw wol
       Link detected: yes

# ethtool eth2
Settings for eth2:
       Supported ports: [ TP ]
       Supported link modes:   10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Supported pause frame use: No
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Advertised pause frame use: No
       Advertised auto-negotiation: Yes
       Speed: 1000Mb/s
       Duplex: Full
       Port: Twisted Pair
       PHYAD: 1
       Transceiver: internal
       Auto-negotiation: on
       MDI-X: on (auto)
       Supports Wake-on: pumbg
       Wake-on: g
       Current message level: 0x00000007 (7)
                              drv probe link
       Link detected: yes

 

 

eth0 - встроенная сетевая карта, аплинк в сторону провайдера.

eth2 - смотрит на пользователей, пользователи все в одном влане 1000. Эта сетевая карта имеет интерфейс PCIe x1, я думаю не в этом дело?

 

Все сетевые карты воткнуты в один L2 коммутатор - TP-Link TL-SG5412F, все порты гигабитные. Патчкорды менял, да не в них дело, светодиод на коммутаторе горит зеленым цветом.

В сторону провайдера, скорость заявленная, если скачать что то через wget, провайдер отдает полную скорость на этом роутере.

Знаю что сетевые карты плохие, но у меня расчетный трафик - 300 МБит/с, без роста, т.е на этом роутере роста трафика не будет. Нужно просто отроутить на чем есть 300 МБит трафика и все. Вот такая вот специфическая задача.

В чем может быть дело?

Изменено пользователем engdev

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iptables? top?

 

eth2 - ar8161? Без влана не пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

top - 18:11:30 up  7:35,  2 users,  load average: 0,05, 0,08, 0,12
Tasks: 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,2 us,  0,1 sy,  0,0 ni, 96,7 id,  1,7 wa,  0,0 hi,  1,4 si,  0,0 st
КиБ Mem:   7652192 total,   822676 used,  6829516 free,   139248 buffers
КиБ Swap:  7852028 total,        0 used,  7852028 free,   379128 cached

 

Загрузка CPU 3-4%. eth2 без влана не пробовал, но разве может быть в этом дело?

 

iptables только правило на FORWARD, и два списка ipset

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             match-set FREAL dst
ACCEPT     all  --  anywhere             anywhere             match-set FREAL src
ACCEPT     all  --  anywhere             anywhere             match-set FFIN dst
ACCEPT     all  --  anywhere             anywhere             match-set FFIN src

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere

 

eth0 - Qualcomm Atheros AR8161 Gigabit Ethernet (rev 10) - смотрит в сторону провайдера, тут все ок

eth2 - Intel Corporation 82574L Gigabit Network Connection - смотрит на пользователей, полка 100 МБит/с

Изменено пользователем engdev

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пока грешу на влан, завтра попробую без без него, если в этом есть смысл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По симптомам похоже на загрузку по шине. Но шина pci-e 1x дает 250 мбайт в секунду.

 

Покажите график если есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Используйте

02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

, а атерос или забыть или использовать для всякой мелочи.

Изменено пользователем passer

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

, а атерос или забыть или использовать для всякой мелочи.

Ок, но в данном случае почему то полка на сетевой карте от Intel.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что было в 10 часов?

Может быть просто счетчики для графиков переполняются? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю. Зато на личном опыте знаю, что Intel + vlan проблем не вызывает.

 

Возможно сетевка неисправна, возможно железка "тупит" с которой сетевка работает. Да много чего бывает.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интел рулит это точно, но у ТС явно проблема с графиком. У него там трафика больше сотни, 32 битные счетчики переполнились - на графике херня, он думает, что проблема в сетевыми.

Тот момент где исходящий вырос, а входящий упал точно так же можно объяснить.

 

2engdev, почините графики сначала, может быть проблемы и нет.

 

p.s. Если это кактус, то надо выбрать 64-bit counters. Если был выбран изначально, то пересоздать график.

p.p.s. И вообще-то "полка" выглядит примерно так:

plate.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интел рулит это точно, но у ТС явно проблема с графиком. У него там трафика больше сотни, 32 битные счетчики переполнились - на графике херня, он думает, что проблема в сетевыми.

Тот момент где исходящий вырос, а входящий упал точно так же можно объяснить.

 

2engdev, почините графики сначала, может быть проблемы и нет.

 

p.s. Если это кактус, то надо выбрать 64-bit counters. Если был выбран изначально, то пересоздать график.

 

По графикам +1, но пересоздавать ничего не надо, можно просто исправить в настройка кактуса

 

ну и автору почитать http://forum.nag.ru/forum/index.php?showtopic=92786&view=findpost&p=941882

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как-то на полку-то, конечно, ни разу не похоже...

 

Интелы 82574L конечно не высший свет, но уж и не откровенное дерьмо. Имхо ваша проблема совершенно не в этом.

Есть ли какие признаки "полки" кроме странных графиков? Увеличение задержек, дропы?

Вам апстрим больше 100Мбит хоть дает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как-то на полку-то, конечно, ни разу не похоже...

 

Интелы 82574L конечно не высший свет, но уж и не откровенное дерьмо. Имхо ваша проблема совершенно не в этом.

Есть ли какие признаки "полки" кроме странных графиков? Увеличение задержек, дропы?

Вам апстрим больше 100Мбит хоть дает?

Апстрим дает 500 Мбит/с, через wget эту скорость я получаю.

 

По поводу графиков действительно ошибся, поставил 64 битные счетчики, посмотрим что будет.

nload не показывает мне скорость выше 100 Мбит/с, бывает конечно резкий скачок на 110, и сразу резко вниз на 95.

Дропов, увеличение пингов не наблюдается.

Изменено пользователем engdev

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если это кактус, то надо выбрать 64-bit counters. Если был выбран изначально, то пересоздать график.

 

Откройте для себя плагин fix64bit ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если это кактус, то надо выбрать 64-bit counters. Если был выбран изначально, то пересоздать график.

 

Откройте для себя плагин fix64bit ;)

 

Ок. Спасибо. У меня бывает на 3750 такая херня, график 64, но рисует с переполнением. Решал пересозданием. Ну если плагин фиксит одной кнопкой, то гут ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

график 64, но рисует с переполнением. Решал пересозданием.

 

Здесь:

 

"Data Queries" -> "SNMP - Interface Statistics" -> "In/Out Bits (64-bit Counters)"

 

Посмотрите что представляет из себя rrd_maximum - если оно равно "query_ifSpeed", то возможно, что в момент создания графика SNMP сказало что скорость интерфейса, например, 100Мбит и RRD файл создался с максимумом не позволяющим в него впихнуть 1Гбит. Когда график пересоздавали, то SNMP мог отдать нормальную скорость, после чего данные влазили.

Чтобы данные всегда "помещались" я сделал у себя так:

 

1b338d6d1091.jpg

 

Т.е. тупо-в-лоб ставим 10 или даже 100 Гбит даже для интерфейсов в 1Мбит :)

 

 

В настройках плагина можно указать RRD max, чтобы при пересборке RRD файла (там вроде дамп -> создание нового -> заливка) было нужное значение:

 

b38a553179f0.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А так и было. Графики были созданы пока интерфейс был в down, я еще сразу подумал, что он тупо не влезает из-за максимума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Графики были созданы пока интерфейс был в down

 

Вот для этого и сделано так, как на 1-й пикче ;) После такого финта можно сразу строить графики даже с отключенных портов. Плагин же позволяет исправлять косяки, когда по-запарке создали график не 64-х битный, а 32-х битный.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообщем оказалось что глючит Qualcomm Atheros AR8161 Gigabit Ethernet которая смотрит в мир. Через wget она выдает полную скорость, а через iperf -c <соседу в сервер> упираемся опять в 20-70 Мбит/с в зависимости от нагрузки канала. Не знаю почему так. Завтра заменю на Intel, смотрю что будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У вас на борту 3 сетевки. Используйте 2 Intel'а. Для ваших нужд Intel 571, 572, 574, 579 за глаза хватит.

Изменено пользователем passer

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.