Коллеги, у меня трагедия.Исходные данные: софт-роутер на базе INPRO 2 x XEON 3GHz/1GB RAM, Fedora Core 5 2.6.18-1.
Гигабитный сетевой интерфейс на чипсете Intel 82541PI модуль e1000 eth0 (driver ver. 7.3.15) разбит на сетевые сегменты - 25 виланов (eth0.101, eth0.102 etc.) и воткнут в гигабитный порт layer 2 switch DLINK DES-3550. По сообщению и свича и оперсистемы, линк установлен на:
Nov 16 00:20:03 xeon kernel: e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
Nov 16 00:20:03 xeon kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
Виланы роутятся между собой на средней скорости 200 мегабит.
На днях стал замечать какое-то странное повышение времени пинга до роутера. Если обычно пакеты по 1400 байт возвращались за 1 мс, то вдруг отклик начал приходить за 10-15 мс. Заглянув в графики, убедился, что межсегментный трафик добрался до 300 мегабит. Окей, но это треть от гигабита и откуда вдруг взялось повышение пинга - для меня было не понятно.
Решил сотворить эксперимент.
1. Пинг до роутера в то время, когда он маршрутизирует ~150 мбит:
http://www.kc.ru/~tn/ping-1.gif
2. Запускаю UDP Flooder для посылки паразитного трафика во все сегменты, дабы загрузить роутер под завязку. Всего 5 копий программы, каждая выдает по ~80 мегабит. Итого нагрузка на роутер будет в районе 550 - 600 мегабит:
http://www.kc.ru/~tn/flooder.gif
3. Иду и смотрю на график утилизации порта:
http://www.kc.ru/~tn/switch.gif
4. Запускаю пинг до роутера сейчас. Вижу страшные потери:
http://www.kc.ru/~tn/ping-2.gif
5. Смотрю top в оперсистеме:
http://www.kc.ru/~tn/top.gif
6. Смотрю ifconfig eth0:
http://www.kc.ru/~tn/ifconfig.gif
...и сижу в тихом ужасе. Двухпроцессорный Ксеон не может нормально принять на себя 600 мегабит, обрабатывает лишь в районе 450-ти (48 млн. байт), при этом загрузка процессора составляет не более 25%, потери по пингу ~10%, куча дропнутых пакетов + еще каких-то 5 критических ошибок и 3 левых фрейма!
Никто с таким кошмаром не сталкивался? Трое суток бьюсь - безрезультатно. Сижу, плачу.