Всем привет.Имеется сервер двухпроцессорный 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
Вопрос что и где еще замерить и подкрутить чтобы отыскать узкое место?