ЗасадаСтолкнулись тут с засадой на одном из серверов.
В сервер вставили дуальную карту Intel Gigabit ET Dual Port Server Adapter , с ервер работает шлюзом.
pciconf -lv
igb0@pci0:4:0:0: card=0xa03c8086 chip=0×10c98086 rev=0×01 hdr=0×00 vendor = ‘Intel Corporation’ class = network subclass = ethernet igb1@pci0:4:0:1: card=0xa03c8086 chip=0×10c98086 rev=0×01 hdr=0×00 vendor = ‘Intel Corporation’ class = network subclass = ethernet
Что получили ? А получили вместо ожидаемого улучшения, т.к. встроенные карточки похуже будут, тотальное ухудшение.
Если качать с самого сервера, то закачка идет в полную скорость канала (т.е. можно и более 20 МБ/с выжать),
а вот если качать как клиент (через этот сервер), то скорость закачки 50 килобайт и выше ну никак не идет ((((
Пробовали драйвера и самой FreeBSD 7.2 так и дрова от Yandex , так и дрова с официального сайта Intel .
Но ситуация не изменялась ни на грамм………
Чего мы тока не делали…… даже бубном стучали админским ничего не помогало, даже накатили сервер до FreeBSD 7.3 PRERELEASE – результат тот же.
Трындец подумали мы……. но:
Сами понимаете, гуглили мы изрядно и вот появился луч надежды, наткнулись на описание той же проблемы на lists.freebsd.org , которая датируется аж:
Mon Jun 8 10:53:08 UTC 2009
Где человек пишет, что ему помогло. А именно:
в /etc/sysctl.conf пишем:
dev.igb.0.enable_lro=0 dev.igb.1.enable_lro=0 dev.igb.0.rx_processing_limit=2048 dev.igb.1.rx_processing_limit=2048
Затем перегружаем сервер , а не правим это налету через sysctl , а иначе не заработает, у нас не заработало, как чел и писал.
И вауля ! Сервер возвращается из ребута и наконец то все становится как надо ! А именно получаем нормальную скорость через него как клиент.
Если по команде:
sysctl dev.igb.0.enable_lro=0
Вылезает:
sysctl: unknown oid ‘dev.igb.0.enable_lro’
Тогда попробуйте так:
ifconfig igb0 -lro
Итог:
Драйвера с сайта Intel правка переменных sysctl