Оптимизация системы.

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Оптимизация системы.

Сообщение eddy_mut »

Всем привет.

Имеется сервер двухпроцессорный 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


Вопрос что и где еще замерить и подкрутить чтобы отыскать узкое место?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Оптимизация системы.

Сообщение ~AsmodeuS~ »

в новой версии 0.5 уже реализированно использование таблиц для шейпера что значительно уменьшит использование прирываний dummynet


если у Вас очень большие объёмы трафика тогда лучше переходить на ng_car

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

У меня не очень большие объемы трафика.

Обратите внимание: у меня скорость на сетевухе всё время упирается в 60 мегабит. Почему так может быть?

Посмотрите как влияет на пропускную способность включение/выключение поллинга:

Изображение
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Оптимизация системы.

Сообщение ~AsmodeuS~ »

когла разрабатывался dummy таких скоростей небыло ((((

теблицы принесут ещё 10 мб + но дальше решение при 100 мб канала это ng_car

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

А почему поллинг только ухудшает ситуацию? Из-за dummmynet?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Оптимизация системы.

Сообщение Abram »

А что, altq в FreeBSD не рулит? Там же вроде CBQ есть.
P.S.: Да, когда-то была такая же проблема. Решилась уходом на новое место работы и поднятием там всего на Linux :D

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

А вот и первая перегруженность.
Посмотрите как поменялись значения (появились input errs):

Код: Выделить всё

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     19412   140    9830139      21496     0   14528062     0
     19645   330    9923777      21389     0   14418335     0
     19984   132   10477309      21457     0   14365621     0
     20256   329   10716209      22203     0   14926177     0
     19455   337    9794852      21152     0   14019214     0
     19592   314   10343053      21478     0   14552906     0
     20326   353   11002722      21591     0   14357064     0
     19101    85    9731154      21596     0   14849520     0
     19924   353   10122058      21526     0   13987901     0
     20353   263   10889687      21567     0   14881387     0
     20160   172   10745294      22262     0   16040045     0
     20466   250   11049723      22125     0   15425185     0
     19493     0   10768131      21367     0   15533731     0
     19656   269   10492850      21516     0   15345766     0
     19554   168   10084180      21562     0   15049935     0
     19294   227   10170364      20975     0   14653678     0
     19886   128   10371821      21804     0   15070734     0
     19563   239   10166979      21718     0   14936369     0
     19960   286   10342465      21255     0   14526917     0
     19780   232   10555658      21452     0   15310897     0
     19869    40   10428169      22006     0   15601548     0

Код: Выделить всё

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   ||||||

                    /0%  /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
root     idle: cpu2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root     idle: cpu3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root     idle: cpu0 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root     idle: cpu1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root       dummynet XXXXXXXXXXXXXXXX
root      swi1: net XXXXXXXXXXXXXXXX
root           mpd4 XXX
eddy           sshd XX
flowtoolsflow-captu X
Поллинг включен.
Активных сессий 158
На графике загрузки интерфейса bge0 - 40 Mbit. (если выключить polling сразу становится 60 Mbit но не больше).
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

Abram писал(а):А что, altq в FreeBSD не рулит? Там же вроде CBQ есть.
P.S.: Да, когда-то была такая же проблема. Решилась уходом на новое место работы и поднятием там всего на Linux :D
Что такое altq я еще не знаю. Но как нибудь посмотрю. Спасибо.
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

chtito
Сообщения: 313
Зарегистрирован: Чт дек 13, 2007 11:03 am

Re: Оптимизация системы.

Сообщение chtito »

На наших интерфейсах bce к сожалению поллинг не поддерживается. Тем не менее...

- ОС FreeBSD 7.1
- Дописанный/переписанный форк Абиллс 0.40 от 15-го сентября 2008 г.
- Машина использьуется только для Радиус-авторизации, резки, анализа и учета трафика, юзеры терминируются на другом железе (Cisco).
- Через машину проходит только входящий из Интернета трафик; исходящий у нас бесплатен, поэтому в биллинге не учитывается, а шейпится на самих DSLAM (как правило 1 мегабит).
- Использование ipfw таблиц с tablearg где возможно, сократив кол-во кастом правил, выдаваемых ipfw show, до 8. Абиллс переделан чтобы _только_ добавлять/удалять пару IP/kbps в таблицу, соответствующую зоне трафика и никогда не добавлять новых правил.
- Использование sysctl net.inet.ip.dummynet.io_fast=1 позволяет по возможности пропускать трафик без задержек и меньше грузит CPU.
- Ядро собрано с options HZ=1000 (2000 может быть слишком много, попробуйте снизить и проверить)
- Разнесение входящего в машину и выходящего из нее трафика на два отдельных физических интерфейса (bce0 & bce1).
На данный момент по 15к прерываний от ифейсов, так сказать, разгрузочное время. Вроде до перегруза далеко.

Это позволило держать свыше 300 mbit/s и свыше 3000 абонентов с большим запасом.

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

Солидно.

- Разнесение входящего в машину и выходящего из нее трафика на два отдельных физических интерфейса (bce0 & bce1).
Думаю, в скорости разнесу на две сетевухи bge0 и bge1
- Ядро собрано с options HZ=1000 (2000 может быть слишком много, попробуйте снизить и проверить)
Сегодня ночью перезагружался с параметром HZ=1000. К сожалению не помогло.


Интересно проверить шейпинг ли это тактормозит машину? Может сделать щас /etc/rc.d/ipfw restart? Чтобы все правила шейпинга удалились. И посмотреть что будет.
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

chtito
Сообщения: 313
Зарегистрирован: Чт дек 13, 2007 11:03 am

Re: Оптимизация системы.

Сообщение chtito »

eddy_mut писал(а): Интересно проверить шейпинг ли это тактормозит машину? Может сделать щас /etc/rc.d/ipfw restart? Чтобы все правила шейпинга удалились. И посмотреть что будет.
Просто добавьте allow ip from any to any самым первым правилом, не удаляя существующие, и все.

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

о! Спасибо!
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

Без шейпинга получилось опять 60 мегабит. Что за цифра такая? Почему такой потолок?

1. На сервере внутренний и внешний интерфейсы уже разнес на bge0 и bge1. Поллинг на обоих включен.
2. Сервер подключен к гигабитному коммутатору. В этот же коммутатор подключен гигабитный же маршрутизатор сиско.
3. Канал к провайдеру 100 Mbit/s.

Может быть MPD 4.3 не тянет больше? Щас еще попробую на безтуннельной связи протестировать.
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Оптимизация системы.

Сообщение ran »

1. пптп - фтопку... поднять пппое - желательно ядерный... незнаю есть ли под бздёй - под линухом есть...

2. убрать всякую каку типа мппе

3. разнести нас и серверную часть на разные тазики

4. а мож у тебя просто железо глюкавое ;)
Любой тупик - это тщательно замаскированный выход.

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Re: Оптимизация системы.

Сообщение eddy_mut »

1. пптп - фтопку... поднять пппое - желательно ядерный... незнаю есть ли под бздёй - под линухом есть...

2. убрать всякую каку типа мппе

3. разнести нас и серверную часть на разные тазики


По всем трем пунктам согласен. К этому и стремлюсь. Но по заявлениям спецов на уже имеющемся железе можно вытянуть до 400 сессий.

По четвертому пункту - буду надеяться на лучшее :)
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

Ответить