Перейти к содержимому
Калькуляторы

Сколько конектов Linux+PPTPD можно выжать

Есть городская сетка. выход в инет через linux pptpd(ни шифрования, ни сжатия).

Стоит сервер HP 4 ядра 3,2 Xeon 533. Сетевушки Intel PRO 1000 PCIX64 NAPI

На нем крутится только pptpd сессии и шейпинг входячки(tc qdisc). Нат, локальный роутинг, биллинг, все висит на других серваках и маршрутизаторах.

Когда на нем одновременно поднято 1000-1100 коннектов, инет летает(~120-140MBit/s 10Килопакетов/с). Как только переваливает за ~1300-1400, резко качество услуги падает. Скорость либо никакая, либо наоборот шейпер пропускает много, пинги растут до бесконечности. В топе si 95-99% на том ядре, на котором сетевуха прерываниями висит(10-1000 int в сек).

Попробовали заменить новым серваком HP 8 ядер по 2.0Ггц Xeon. 1333 шина. intel pro 1000. Но он еще хуже оказался. при 800 коннектах ему уже плохо становится. Одно ядро перегружено, остальные почти бездельничают(SMP вкл.). Пробовал вообще убрать правила iptables(30 правил) - результат 0.

Зделал вывод: при увеличении таблицы маршрутизации (а там получается по 1000-1400 маршрутов - каждый коннект это маршрут) на обработку пакета уходит уже очень много времени, а прерывание сетевушки висит на одном ядре, и обработка вся на нем происходит и никакой NAPI не поможет, реже прерывание вызываем, а операции с пакетом те же. Вот и упирается кол-во стабильных коннектов в ~1200 при 3,2. а на более низкочастотном ядре еще меньше.

 

Поделитесь, кто сколько выжимал, на чем, и может у меня просто грабли где-то?

 

ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Events загружает проц ?

Версия pptpd какая ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зделал вывод: при увеличении таблицы маршрутизации (а там получается по 1000-1400 маршрутов - каждый коннект это маршрут) на обработку пакета уходит уже очень много времени, а прерывание сетевушки висит на одном ядре, и обработка вся на нем происходит и никакой NAPI не поможет, реже прерывание вызываем, а операции с пакетом те же. Вот и упирается кол-во стабильных коннектов в ~1200 при 3,2. а на более низкочастотном ядре еще меньше.

гадать незачем, ведь есть oprofile, который скажет, чем занято ядро

гипотезу про таблицу маршрутизации также легко проверить: добавить лишних маршрутов (тоже /32 и из той же сетки) и посмотреть, появятся ли тормоза

 

P.S. у меня тыщи юзеров на pptp никогда не было

Изменено пользователем random7

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней?

Правельней будет поставить еще 2 сетевухи и развести их по ядрам.Соотв. поднять еще 2 процесса PPTPD.

 

У меня такаяже машина. Тоже HP 4 ядра. PPPoE На каждое ядро по сетевухе. И по отдельному процессу.

В результате по 500-600 коннектов на ядро было. Весь локальный трафик через сервер. Загрузка конечно приличная.Но тянет.

Правда есть 1но.Но.

 

Платы у меня PCI-E Intel PRO 1000 (100$). Так вот иногда сервер на ровном месте (Debian Etch) уходит в kernel panic :-(

С родными Broadcom такого ненаблюдал. Сильно напрягает.Че делать незнаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

(Злорадно) А вот на FreeBSD... ухожу-ухожу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

(Злорадно) А вот на FreeBSD... ухожу-ухожу...

а в линухе это тоже есть, только убогое :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней?

Правельней будет поставить еще 2 сетевухи и развести их по ядрам.Соотв. поднять еще 2 процесса PPTPD.

 

У меня такаяже машина. Тоже HP 4 ядра. PPPoE На каждое ядро по сетевухе. И по отдельному процессу.

В результате по 500-600 коннектов на ядро было. Весь локальный трафик через сервер. Загрузка конечно приличная.Но тянет.

Правда есть 1но.Но.

 

Платы у меня PCI-E Intel PRO 1000 (100$). Так вот иногда сервер на ровном месте (Debian Etch) уходит в kernel panic :-(

С родными Broadcom такого ненаблюдал. Сильно напрягает.Че делать незнаю.

Идея про несколько сетевух мне понравилась, на предыдущем по цепочке серваке sorcerouting сделать, одни сети через одну сетевку, другие через другую. Покумекаю.

А в кернел паник и у меня раз в два-три месяца уходит, перезагружается и дальше попер.

 

 

(Злорадно) А вот на FreeBSD... ухожу-ухожу...
Не против и на фряху перейти, mpd поюзать, вот только есть ли в этом резон? Что там лучшего-то?

 

Events загружает проц ?

Версия pptpd какая ?

Events не грузит, грузит ksoftirqd/3. Если коннектов 1100 - жрет 3-5%, как 1300-1400 от 30-95%.

pptpd v1.3.4

Изменено пользователем AlterDen

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Парни выдержит ли mpd на FreeBSD при конфигурации:

 

FreeBSD 6.2-RELEASE #0: Fri Jan 18 01:38:02 UTC 2008

root@:/usr/src/sys/amd64/compile/ROUTER

Timecounter "i8254" frequency 1193182 Hz quality 0

CPU: Intel® Core2 CPU 6320 @ 1.86GHz (1866.66-MHz K8-class CPU)

Origin = "GenuineIntel" Id = 0x6f6 Stepping = 6

Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLU

SH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS>

Features2=0xe3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,<b9>,CX16,<b14>,<b15>>

AMD Features=0x20000800<SYSCALL,LM>

AMD Features2=0x1<LAHF>

Cores per package: 2

real memory = 2138832896 (2039 MB)

avail memory = 2054062080 (1958 MB)

xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xec00-0xec7f mem 0xfebffc00-0xfebffc7f irq 18 at device 1.0 on pci1

 

до 1000 коннектов, если гнать весь локальный трафик через этот сервер (на него сходятся vlan от каждого дома)

шейпинга, nat нет, тупо маршрутизация

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Парни выдержит ли mpd на FreeBSD при конфигурации:

 

xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xec00-0xec7f mem 0xfebffc00-0xfebffc7f irq 18 at device 1.0 on pci1

 

до 1000 коннектов, если гнать весь локальный трафик через этот сервер (на него сходятся vlan от каждого дома)

шейпинга, nat нет, тупо маршрутизация

ИМХО, на 100Мб сетевухе гонять всю локалку, да еще и при 1000 активных юзверей, будет совсем не правильно. Если отовсюду 100Мб линки. соберите их на свитч с гигабитным портом( например 3010, или 3526) и гигабитом отдайте в сервер на что-нить типа Intel Pro 1000.

А про конфиг сервака: локальный трафик через mpd(pppoe наверно хотите?) при 1000 активных такой не потянет. Про фряху правда не уверен, но на линуксе точно не прокатит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нет, не pppoe а vpn. vpn наверное в этом отношении не рекомендуете, повалит напрочь сервер?

Ну реально пока 500 абонентов, просто на увеличение так сказать нужно.

Зажму по 10-ть мегабит на дом пока, гигабит рано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нет, не pppoe а vpn. vpn наверное в этом отношении не рекомендуете, повалит напрочь сервер?

Ну реально пока 500 абонентов, просто на увеличение так сказать нужно.

Зажму по 10-ть мегабит на дом пока, гигабит рано.

Если не собираетесь делать локалку платной, скорее всего Вам VPN на этом узле не нежен, разве что для доступа в инет как у нас. А на 10 Мб я б уже не рекомендовал ориентироваться, все уже давно стараются строить 100 к юзверю, гиг с дома. Железо уже совсем дешевое. Ориентируйтесь все-таки на 100Мб на дом минимум. Пора уж :))

Роутинг вланов, биллинг, шейпинг, pptp(vpn) у меня жил на одном компе(Xeon 4x3.2) до 600 активных юзверей, потом всё разнесли по сервакам.

Роутинг вообще без проблем гонятся на не сильных компах с нормальными сетевками, пока не появляются заморочки типа VPN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

до 1000 коннектов, если гнать весь локальный трафик через этот сервер (на него сходятся vlan от каждого дома)

шейпинга, nat нет, тупо маршрутизация

:-) Сотку ? На Core2Duo ? Большими пакетами ? С этим любой AthlonXP 2200+ справится. Хоть тыщу юзеров, хоть две.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Замечательно, доделываю оптику взамен меди на оставшемся районе и впихиваю все в свой VPN

Реализация у меня просто такая:

DHCP на vlan'е который идет на один дом и гонит траф весь на сервер центральный.

По умолчанию на сервере разрешена лишь маршрутизация между тунельными IP, т.е. если юзверь не оплатил - то vpn не установит и следовательно далее своего дома ничего не увидет :)

При этом мыльницы в домах и лишь в центрах l2 с раздачей вланов.

Удобно

Стоило бы узнать, следует ли обновить mpd с 3.8 до 5-го... или не трогать

Изменено пользователем Кашмир

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

У меня последний стабильный релиз - mpd 4.4, в пятерке какая-то плавающая бага до сих пор...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а ссылку на описание бага можно? или хотя бы вкратце, в чем выражается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Парни выдержит ли mpd на FreeBSD при конфигурации:

 

FreeBSD 6.2-RELEASE #0: Fri Jan 18 01:38:02 UTC 2008

root@:/usr/src/sys/amd64/compile/ROUTER

Timecounter "i8254" frequency 1193182 Hz quality 0

CPU: Intel® Core2 CPU 6320 @ 1.86GHz (1866.66-MHz K8-class CPU)

Origin = "GenuineIntel" Id = 0x6f6 Stepping = 6

Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLU

SH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS>

Features2=0xe3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,<b9>,CX16,<b14>,<b15>>

AMD Features=0x20000800<SYSCALL,LM>

AMD Features2=0x1<LAHF>

Cores per package: 2

real memory = 2138832896 (2039 MB)

avail memory = 2054062080 (1958 MB)

xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xec00-0xec7f mem 0xfebffc00-0xfebffc7f irq 18 at device 1.0 on pci1

 

до 1000 коннектов, если гнать весь локальный трафик через этот сервер (на него сходятся vlan от каждого дома)

шейпинга, nat нет, тупо маршрутизация

 

Сейчас 2 сервера на free с mpd в режиме load balancing, до его включения всё на 1 крутилось, машинка С2D 3.00 пока идёт тестовое включение - пик 110 человек, анлиммы/лимиты, idle cpu 99% всегда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

В двадцать пятый раз повторяю - нагрузку в юзерах меряют только линузятники. Нормальные люди меряют в kpps + Mbps. От количества

сессий нагрузка практически не зависит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В двадцать пятый раз повторяю - нагрузку в юзерах меряют только линузятники. Нормальные люди меряют в kpps + Mbps. От количества

сессий нагрузка практически не зависит.

Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

(Злорадно) А вот на FreeBSD... ухожу-ухожу...
Не против и на фряху перейти, mpd поюзать, вот только есть ли в этом резон? Что там лучшего-то?

Ничего там нового не придумано.

Ну разве что косяки mpd и netgraf разбирать на порядок сложнее.

 

Events загружает проц ?

Версия pptpd какая ?

Events не грузит, грузит ksoftirqd/3. Если коннектов 1100 - жрет 3-5%, как 1300-1400 от 30-95%.

pptpd v1.3.4

Посмотри в таблице прерываний, кто у тебя проц так грузит ими.

Дальше или oprofile, или тюнинг драйверов сетевухи.

Дело не в pptpd. Он в user mode у тебя работать должен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ?

Какие именно сорцы мне предлагается открыть ? :-) А то у меня их много разных...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>Если коннектов 1100 - жрет 3-5%, как 1300-1400 от 30-95%.

 

IMHO По симптомам - это нехватка памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По ходу это не память, а при превышения N прерываний они либо проскакивают, либо друг в друга вкладываются, отсюда и глюки, хоть 16процессорник ставь. На фряхе (вроде бы) частично лечится хитрой технологией которая данные и между прерываниями высасывает (по прерываниям от таймера), однако провы обычно кластер ставят из нескольких тачек, и днс-ом нагрузку между серваками разбрасывают, или просто юзеров с разных улиц или домов кидает на разные впнки.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ?

Какие именно сорцы мне предлагается открыть ? :-) А то у меня их много разных...

Это уже вопрос не ко мне, ибо демонов стараюсь обходить :)

 

По ходу это не память, а при превышения N прерываний они либо проскакивают, либо друг в друга вкладываются, отсюда и глюки, хоть 16процессорник ставь. На фряхе (вроде бы) частично лечится хитрой технологией которая данные и между прерываниями высасывает (по прерываниям от таймера), однако провы обычно кластер ставят из нескольких тачек, и днс-ом нагрузку между серваками разбрасывают, или просто юзеров с разных улиц или домов кидает на разные впнки.

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

Polling эта технология во фре называется.

В Linux-e NAPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это уже вопрос не ко мне, ибо демонов стараюсь обходить :)

В mpd два единственных упоминания, хоть как-то связанных с с route table - это "net/route.h" и "/sbin/route".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нормально все с фрюхой, работает ок, хотя согласен, от рук сильно зависит.

по теме: Polling есть? в линухе его вроде NAPI зовут

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.