The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"> FreeBSD softrouter (netstat errs input) + непонятный трафик"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"> FreeBSD softrouter (netstat errs input) + непонятный трафик"  +/
Сообщение от nerik email(ok) on 10-Дек-10, 07:07 
Всем доброго дня.
Коллеги прошу помощи в советах. Не могу понять кто валит наш шлюз, либо физик какой-то, либо странность в сети.
Имеются два шлюза IBM для ната, перед ними есть bras в роли циски ASR1002.
Оба шлюза под управлением FreeBSD 7.3 с yandex драйверами 1.36.2.17 (сетевые Intel® PRO/1000, хорошие сетевые, с трафиком не подводили). Работают они отлично и уже очень длительное время.
После bras default-маршрут идет на первый шлюз, а на второй мы скинули 16 сетей (Для балансировки входящего в нашу сеть трафика, знаю что криво, но работает). Оба шлюза физически подключены в разные места (в разные коммутаторы), поэтому проблема точно не в физике (т.к. при переносе всего трафика на один из шлюзов, проблема повторяется).
Теперь о самой проблеме.
Вчера первый шлюз стал загибаться, процессы rx_kthread стали взлетать до 100%, тем самым съедать весь процессор.
При выводе команды netstat -hw 1 (данные пока не сохранил) увидел, что копятся errs на input, при этом количество пакетов начинает падать (например с 60K до 3-4K, а ошибки возрастают до 6-7K). Суть в том, что длится это не долго, было вчера 3 раза и каждый такой сбой был от 3 до 10 минут.
Bras (ASR1002) не загибается. Колбасит при этом первый шлюз очень даже не дурно. А вот со вторым шлюзом все нормально. Я думал, что это сам шлюз глючит, но когда я весь трафик перекинул на второй, второй стал тоже загибаться с такими же симптомами.

tcpdump не выявил ничего плохого.

Посмотрел дебаг сетевух:

sysctl dev.em.2.stats=1

Dec 10 08:48:41 gwibm kernel: em2: Excessive collisions = 0
Dec 10 08:48:41 gwibm kernel: em2: Sequence errors = 0
Dec 10 08:48:41 gwibm kernel: em2: Defer count = 0
Dec 10 08:48:41 gwibm kernel: em2: Missed Packets = 7216624
Dec 10 08:48:41 gwibm kernel: em2: Receive No Buffers = 1084060
Dec 10 08:48:41 gwibm kernel: em2: Receive Length Errors = 0
Dec 10 08:48:41 gwibm kernel: em2: Receive errors = 0
Dec 10 08:48:41 gwibm kernel: em2: Crc errors = 0
Dec 10 08:48:41 gwibm kernel: em2: Alignment errors = 0
Dec 10 08:48:41 gwibm kernel: em2: Collision/Carrier extension errors = 0
Dec 10 08:48:41 gwibm kernel: em2: RX overruns = 101
Dec 10 08:48:41 gwibm kernel: em2: watchdog timeouts = 0
Dec 10 08:48:41 gwibm kernel: em2: RX MSIX IRQ = 0 TX MSIX IRQ = 0 LINK MSIX IRQ = 0
Dec 10 08:48:41 gwibm kernel: em2: XON Rcvd = 0
Dec 10 08:48:41 gwibm kernel: em2: XON Xmtd = 61562
Dec 10 08:48:41 gwibm kernel: em2: XOFF Rcvd = 0
Dec 10 08:48:41 gwibm kernel: em2: XOFF Xmtd = 7275240
Dec 10 08:48:41 gwibm kernel: em2: Good Packets Rcvd = 1779196668
Dec 10 08:48:41 gwibm kernel: em2: Good Packets Xmtd = 1735225671
Dec 10 08:48:41 gwibm kernel: em2: TSO Contexts Xmtd = 0
Dec 10 08:48:41 gwibm kernel: em2: TSO Contexts Failed = 0


sysctl dev.em.2.debug=1

Dec 10 08:49:21 gwibm kernel: em2: Adapter hardware address = 0xc566a218
Dec 10 08:49:21 gwibm kernel: em2: CTRL = 0x581c0241 RCTL = 0x8002
Dec 10 08:49:21 gwibm kernel: em2: Packet buffer = Tx=16k Rx=32k
Dec 10 08:49:21 gwibm kernel: em2: Flow control watermarks high = 30720 low = 29220
Dec 10 08:49:21 gwibm kernel: em2: tx_int_delay = 100, tx_abs_int_delay = 195
Dec 10 08:49:21 gwibm kernel: em2: rx_int_delay = 0, rx_abs_int_delay = 200
Dec 10 08:49:21 gwibm kernel: em2: fifo workaround = 0, fifo_reset_count = 0
Dec 10 08:49:21 gwibm kernel: em2: hw tdh = 1090, hw tdt = 1090
Dec 10 08:49:21 gwibm kernel: em2: hw rdh = 3104, hw rdt = 3103, next_rx_desc_to_check = 3104
Dec 10 08:49:21 gwibm kernel: em2: Num Tx descriptors avail = 4068
Dec 10 08:49:21 gwibm kernel: em2: Tx Descriptors not avail1 = 0
Dec 10 08:49:21 gwibm kernel: em2: Tx Descriptors not avail2 = 0
Dec 10 08:49:21 gwibm kernel: em2: Std mbuf failed = 0
Dec 10 08:49:21 gwibm kernel: em2: Std mbuf cluster failed = 0
Dec 10 08:49:21 gwibm kernel: em2: Driver dropped packets = 0
Dec 10 08:49:21 gwibm kernel: em2: Driver tx dma failure in encap = 0
Dec 10 08:49:21 gwibm kernel: em2: Packets pended due to reorder = 0
Dec 10 08:49:21 gwibm kernel: em2: RX interrupts has been masked = 99250334
Dec 10 08:49:21 gwibm kernel: em2: TX interrupts has been generated = 0


Единственное что я крутил у сетевух так это

dev.em.2.rx_int_delay=100
dev.em.2.tx_int_delay=100
dev.em.2.rx_abs_int_delay=200
dev.em.2.tx_abs_int_delay=200
dev.em.2.rx_kthreads=4


Коллеги помогите, пожалуйста. Подскажите, что за трафик такой может спровоцировать ошибки на сетевой при входе? Спасибо.

P.S. Раньше когда трафика было много и шлюз был один, то при перегрузке ошибки появлялись на интерфейсе, но количество пакетов так сильно не падало (ну может на 2-3K, но не на 40K же). Когда появляется вышеописанная проблема, взлет трафика нет, по количеству пакетов сказать пока сложно, но вроде тоже не возрастает.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "> FreeBSD softrouter (netstat errs input) + непонятный трафик"  +/
Сообщение от firewalker on 10-Дек-10, 09:07 
> Dec 10 08:48:41 gwibm kernel: em2: Receive No Buffers = 1084060

Добавьте в loader.conf
hw.em.txd=4096
hw.em.rxd=4096

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "> FreeBSD softrouter (netstat errs input) + непонятный трафик"  +/
Сообщение от nerik email(ok) on 10-Дек-10, 09:20 
>> Dec 10 08:48:41 gwibm kernel: em2: Receive No Buffers = 1084060
> Добавьте в loader.conf
> hw.em.txd=4096
> hw.em.rxd=4096

Не совсем понял, что эти параметры дают? Можно по подробнее?

dmesg |grep 'Packet buffer'
em2: Packet buffer = Tx=16k Rx=32k
em2: Packet buffer = Tx=16k Rx=32k
em2: Packet buffer = Tx=16k Rx=32k

По этим данным не могу понять хватает ли буфер, трафик прогоняется через шлюз 300-500 Мегабит. Сетевые не загибаются. Проблема возникает внезапно на 5-10 минут со вчерашнего дня и раньше такого не было.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "> FreeBSD softrouter (netstat errs input) + непонятный трафик"  +/
Сообщение от firewalker on 10-Дек-10, 09:36 
> Не совсем понял, что эти параметры дают? Можно по подробнее?

Количество хардварных дескрипторов, чем их больше - тем меньше вероятность что их не хватит и пакет дропнется :) По дефолту 256.

> По этим данным не могу понять хватает ли буфер, трафик прогоняется через
> шлюз 300-500 Мегабит. Сетевые не загибаются. Проблема возникает внезапно на 5-10
> минут со вчерашнего дня и раньше такого не было.

Вы бы привели, как минимум, показания top и netstat в момент проблемы. А то может там в CPU упирается...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "> FreeBSD softrouter (netstat errs input) + непонятный трафик"  +/
Сообщение от nerik email(ok) on 10-Дек-10, 09:49 
> Вчера первый шлюз стал загибаться, процессы rx_kthread стали взлетать до 100%, тем самым > съедать весь процессор.

Тобишь в момент проблемы, процессор по top весь съедался, в netstat -hw 1 на input в графе errs ошибки были в 5-7K, количество пакетов падало с 59K до 6-8K.
Показания не могу привести, не сохранил, говорю то что видел. Как только повторится, то сохраню обязательно.
Такое впечатление, что какой-то трафик летит, что сетевая начинает загибаться, а по dmesg как будто-то заполняется буфер.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру