FreeBSD, Inet Gigabit и странные ошибки
Имеется РС в качестве маршрутизатора, ксеон, две двуголовых карты,
pciconf -l -v показывает их как:
em0@pci2:1:0: class=0x020000 card=0x10118086 chip=0x10108086 rev=0x01
hdr=0 x00 vendor = 'Intel Corporation' device = '82546EB Dual Port Gigabit Ethernet Controller (Copper)' class = network subclass =
ethernet
Т.е. 4 гигабитных порта на две карты PCI 64. В режиме 100Мбит вроде бы
всё нормально (хотя про главный ифейс я не помню уже :-)), когда
главный ифейс перевели на гигабит, то с ростом трафика начались ошибки
типа:
netstat -w 1 -I em1
input (em1) output
packets errs bytes packets errs bytes colls
12862 0 3274497 11392 0 6503511 0
13425 27183 4166430 11654 0 6679570 0
13835 0 4409499 11944 0 6674627 0
12683 23999 3479012 11294 0 6548969 0
13227 0 3972377 11307 0 6141135 0
13524 24502 4429783 11475 0 6339650 0
13136 0 3923602 11720 0 6623467 0
13713 26140 4166549 11577 0 6599761 0
СТранно, что ошибок больше чем пакетов. Естественно нам пришлось
включить polling, включили для всех карт. Без поллинга нет ошибок, но
машина почти колом стоит порой. Есть подозрение, что ошибки
коррелируют с числом маленьких пакетов. Пробовали крутить всевозможные
параметры поллинга - результат почти ноль. Пробовали менять коммутор с
цыско 2950Т на какой-то 3сом, результат ноль.
Подскажите в чём может быть дело ?
В драйвере для таких интелов от линукса написано, что, мол, если у вас
есть проблемы с производительностью, то вам следует включить polling и
оставить все другие параметры по-умолчанию. ВОбщем-то мы так же сперва
и поступили: взяли последний драйвер на support.intel.com и заменили
идущий (постарше) в исходниках ядра БЗД. Вообще говорят, что РС
способен разрулить 800 килопакетов в секунду почти легко, но у нас тут
даже сотни нет. Вобщем я уже не знаю что делать :-).