Всем привет.Имеется сервер двухпроцессорный Intel Xeon 3 GHz 2 GB RAM
сетевая карта:
bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x2002> mem 0xfc310000-0xfc31ffff,0xfc300000-0xfc30ffff irq 18 at device 0.0 on pci2
На сервере поднята связка ABillS + mpd4. Подавляющее большинство клиентов PPTP, и еще немного PPPoE. Шейпинг средствами абиллса, ничего сверхмудренного.
Сервак начал тормозить в часы пик при >200 сессий. Тормоза проявляются в скачущем пинге и пропадании пакетов а так же пониженной пропускной способности (линк гигабитный но выше 60-ти мегабит никогда на нем не видел).
Замеры в systat показали что процессор забивается прерываниями 18 от адаптера bge0. Делаю вывод: много безлимитчиков > много пакетов через сетевуху > много прерываний = процессоры перегружены.
Незамедлительно получаю совет от старших товарищей включить поллинг.
Пересобрал ядро:
Код:
options DEVICE_POLLING
options HZ=2000
На следующий день эффект прямо противоположный: все жалуются на упавшую скорость, а пропадание пакетов и скачущий пинг никуда не делись.
При этом в час пик в systat я уже не вижу загруженности от прерывания сетевухи 18 bge0 но теперь там ощутимо присутствует swi1 net и dummynet.
Утром, почти без нагрузки, netstat -w 1:
Код:
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     20836     0   10323652      22961     0   16338869     0
     21345     0   10860813      22898     0   16054667     0
     20592     0   10582651      22330     0   16181027     0
     20120     1   10215146      22014     0   16180368     0
     19617     0    9371417      22568     0   16621482     0
     20571     1    9867263      22254     0   15602902     0
     19396     0    8996124      21432     0   15624158     0
     19172     0    8820773      21524     0   15473477     0
     19209     1    8849957      21646     0   15734201     0
     19424     0    9482504      21376     0   16125719     0
     18533     4    8604782      20741     0   14632630     0
     19235     0    8948979      21757     0   16440139     0
     19536     0    8908356      21750     0   15478963     0
     19464     0    8835937      21660     0   15682544     0
     18717     1    9194828      20931     0   15775238     0
     18693     2    8432115      20964     0   15582052     0
     18847     0    8412087      21369     0   15606039     0
     19379     1    8713417      21101     0   14418211     0
     19082     0    8733936      21356     0   15936071     0
     18847     0    8894042      21185     0   15964182     0
     18949     0    8676736      21930     0   17323964     0
Вечером, в час пик, то же самое, но в колонке input errs появляются значения порядка ~500-1000
Вопрос что и где еще замерить и подкрутить чтобы отыскать узкое место?