FreeBSD, em, ierrs

by bm

Столкнулся с офигенно интересной проблемой. На FreeBSD 8.2-RELEASE начали теряться входящие пакеты на внешнем интерфейсе с двумя vlan и ipfw nat на одном из них.

Вся сложность в том, что проблема проявляется не всегда, и предсказать время её проявления невозможно. Может каждые пять минут возникать, а может и неделю работать без проблем.

Пробовал править всякие переменные sysctl, увеличивал размеры буферов, включал/выключал net.isr, пробовал ставить драйверы от Яндекса. Не помогает.

Посидев перед консолью денёк, я поймал проблему, и, по советам умных людей в рассылке UAFUG снял необходимые показания по загрузке разных кусков ОС. Этим дело, к сожалению, не ограничилось, и мне пришлось пересобирать ядро с поддержкой какого-то там ядерного профайлера. Справился, отправил данные.

И ответили мне странное. Нужно либо распаралеливать nat, либо править какие-то константы в ядре.

Это странно, потому что нагрузка по сети на машину не такая и большая — в пиках не более 60 kpps через оба интерфейса.

В это же время один из специалистов из рассылки в лично переписке очень советовал перейти на более мощные двухголовые сетевухи. Но, во-первых, они стоят много денег, а, во-вторых, нужно будет менять не только их, но и материнску плату, т.к. в нынешней нет двух портов PCI-e.

В общем, на данный момент, перебрав наверное все возможные комбинации из тонких настроек ядра и драйверов, я не попробовал только замену констант в ядре.

Планирую сделать это сегодня. Если не поможет и это, то даже и не знаю, что делать.