AlterDen Posted April 28, 2008 Posted April 28, 2008 Есть городская сетка. выход в инет через 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. а на более низкочастотном ядре еще меньше. Поделитесь, кто сколько выжимал, на чем, и может у меня просто грабли где-то? ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней? Вставить ник Quote
Kirya Posted April 28, 2008 Posted April 28, 2008 Events загружает проц ? Версия pptpd какая ? Вставить ник Quote
random7 Posted April 28, 2008 Posted April 28, 2008 (edited) Зделал вывод: при увеличении таблицы маршрутизации (а там получается по 1000-1400 маршрутов - каждый коннект это маршрут) на обработку пакета уходит уже очень много времени, а прерывание сетевушки висит на одном ядре, и обработка вся на нем происходит и никакой NAPI не поможет, реже прерывание вызываем, а операции с пакетом те же. Вот и упирается кол-во стабильных коннектов в ~1200 при 3,2. а на более низкочастотном ядре еще меньше. гадать незачем, ведь есть oprofile, который скажет, чем занято ядро гипотезу про таблицу маршрутизации также легко проверить: добавить лишних маршрутов (тоже /32 и из той же сетки) и посмотреть, появятся ли тормоза P.S. у меня тыщи юзеров на pptp никогда не было Edited April 28, 2008 by random7 Вставить ник Quote
Ivan Rostovikov Posted April 28, 2008 Posted April 28, 2008 >ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней? Правельней будет поставить еще 2 сетевухи и развести их по ядрам.Соотв. поднять еще 2 процесса PPTPD. У меня такаяже машина. Тоже HP 4 ядра. PPPoE На каждое ядро по сетевухе. И по отдельному процессу. В результате по 500-600 коннектов на ядро было. Весь локальный трафик через сервер. Загрузка конечно приличная.Но тянет. Правда есть 1но.Но. Платы у меня PCI-E Intel PRO 1000 (100$). Так вот иногда сервер на ровном месте (Debian Etch) уходит в kernel panic :-( С родными Broadcom такого ненаблюдал. Сильно напрягает.Че делать незнаю. Вставить ник Quote
jab Posted April 28, 2008 Posted April 28, 2008 (Злорадно) А вот на FreeBSD... ухожу-ухожу... Вставить ник Quote
ingress Posted April 28, 2008 Posted April 28, 2008 (Злорадно) А вот на FreeBSD... ухожу-ухожу... а в линухе это тоже есть, только убогое :) Вставить ник Quote
AlterDen Posted April 28, 2008 Author Posted April 28, 2008 (edited) >ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней?Правельней будет поставить еще 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 Edited April 28, 2008 by AlterDen Вставить ник Quote
Кашмир Posted April 28, 2008 Posted April 28, 2008 Парни выдержит ли 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 нет, тупо маршрутизация Вставить ник Quote
AlterDen Posted April 28, 2008 Author Posted April 28, 2008 Парни выдержит ли 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 активных такой не потянет. Про фряху правда не уверен, но на линуксе точно не прокатит. Вставить ник Quote
Кашмир Posted April 28, 2008 Posted April 28, 2008 нет, не pppoe а vpn. vpn наверное в этом отношении не рекомендуете, повалит напрочь сервер? Ну реально пока 500 абонентов, просто на увеличение так сказать нужно. Зажму по 10-ть мегабит на дом пока, гигабит рано. Вставить ник Quote
AlterDen Posted April 28, 2008 Author Posted April 28, 2008 нет, не pppoe а vpn. vpn наверное в этом отношении не рекомендуете, повалит напрочь сервер?Ну реально пока 500 абонентов, просто на увеличение так сказать нужно. Зажму по 10-ть мегабит на дом пока, гигабит рано. Если не собираетесь делать локалку платной, скорее всего Вам VPN на этом узле не нежен, разве что для доступа в инет как у нас. А на 10 Мб я б уже не рекомендовал ориентироваться, все уже давно стараются строить 100 к юзверю, гиг с дома. Железо уже совсем дешевое. Ориентируйтесь все-таки на 100Мб на дом минимум. Пора уж :))Роутинг вланов, биллинг, шейпинг, pptp(vpn) у меня жил на одном компе(Xeon 4x3.2) до 600 активных юзверей, потом всё разнесли по сервакам. Роутинг вообще без проблем гонятся на не сильных компах с нормальными сетевками, пока не появляются заморочки типа VPN. Вставить ник Quote
jab Posted April 28, 2008 Posted April 28, 2008 до 1000 коннектов, если гнать весь локальный трафик через этот сервер (на него сходятся vlan от каждого дома)шейпинга, nat нет, тупо маршрутизация :-) Сотку ? На Core2Duo ? Большими пакетами ? С этим любой AthlonXP 2200+ справится. Хоть тыщу юзеров, хоть две. Вставить ник Quote
Кашмир Posted April 28, 2008 Posted April 28, 2008 (edited) Замечательно, доделываю оптику взамен меди на оставшемся районе и впихиваю все в свой VPN Реализация у меня просто такая: DHCP на vlan'е который идет на один дом и гонит траф весь на сервер центральный. По умолчанию на сервере разрешена лишь маршрутизация между тунельными IP, т.е. если юзверь не оплатил - то vpn не установит и следовательно далее своего дома ничего не увидет :) При этом мыльницы в домах и лишь в центрах l2 с раздачей вланов. Удобно Стоило бы узнать, следует ли обновить mpd с 3.8 до 5-го... или не трогать Edited April 28, 2008 by Кашмир Вставить ник Quote
jab Posted April 28, 2008 Posted April 28, 2008 У меня последний стабильный релиз - mpd 4.4, в пятерке какая-то плавающая бага до сих пор... Вставить ник Quote
mikevlz Posted April 29, 2008 Posted April 29, 2008 а ссылку на описание бага можно? или хотя бы вкратце, в чем выражается? Вставить ник Quote
Daemon256 Posted April 29, 2008 Posted April 29, 2008 Парни выдержит ли 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% всегда Вставить ник Quote
jab Posted April 29, 2008 Posted April 29, 2008 В двадцать пятый раз повторяю - нагрузку в юзерах меряют только линузятники. Нормальные люди меряют в kpps + Mbps. От количества сессий нагрузка практически не зависит. Вставить ник Quote
Kirya Posted April 29, 2008 Posted April 29, 2008 В двадцать пятый раз повторяю - нагрузку в юзерах меряют только линузятники. Нормальные люди меряют в kpps + Mbps. От количества сессий нагрузка практически не зависит. Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ? Вставить ник Quote
Kirya Posted April 29, 2008 Posted April 29, 2008 (Злорадно) А вот на FreeBSD... ухожу-ухожу...Не против и на фряху перейти, mpd поюзать, вот только есть ли в этом резон? Что там лучшего-то? Ничего там нового не придумано.Ну разве что косяки mpd и netgraf разбирать на порядок сложнее. Events загружает проц ?Версия pptpd какая ? Events не грузит, грузит ksoftirqd/3. Если коннектов 1100 - жрет 3-5%, как 1300-1400 от 30-95%.pptpd v1.3.4 Посмотри в таблице прерываний, кто у тебя проц так грузит ими.Дальше или oprofile, или тюнинг драйверов сетевухи. Дело не в pptpd. Он в user mode у тебя работать должен. Вставить ник Quote
jab Posted April 29, 2008 Posted April 29, 2008 Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ? Какие именно сорцы мне предлагается открыть ? :-) А то у меня их много разных... Вставить ник Quote
Ivan Rostovikov Posted April 29, 2008 Posted April 29, 2008 >Если коннектов 1100 - жрет 3-5%, как 1300-1400 от 30-95%. IMHO По симптомам - это нехватка памяти. Вставить ник Quote
Kerogaz Posted April 30, 2008 Posted April 30, 2008 По ходу это не память, а при превышения N прерываний они либо проскакивают, либо друг в друга вкладываются, отсюда и глюки, хоть 16процессорник ставь. На фряхе (вроде бы) частично лечится хитрой технологией которая данные и между прерываниями высасывает (по прерываниям от таймера), однако провы обычно кластер ставят из нескольких тачек, и днс-ом нагрузку между серваками разбрасывают, или просто юзеров с разных улиц или домов кидает на разные впнки. На мой вгляд эти впнки вообще в полной мере нахрен не нужны, (ну возможно за исключением юзателей белых ипов). Прицепился юзверь к серваку, авторизовался, далее он с этой впнки вообще выгоняется, и ходит себе по инету напрямую, пока комп не выключит (шлюз его арпами проверяет). Вставить ник Quote
Kirya Posted April 30, 2008 Posted April 30, 2008 Jab открой сорцы, да посмотри что к чему, или у демонятников уже route table стал безграничным ? Какие именно сорцы мне предлагается открыть ? :-) А то у меня их много разных... Это уже вопрос не ко мне, ибо демонов стараюсь обходить :) По ходу это не память, а при превышения N прерываний они либо проскакивают, либо друг в друга вкладываются, отсюда и глюки, хоть 16процессорник ставь. На фряхе (вроде бы) частично лечится хитрой технологией которая данные и между прерываниями высасывает (по прерываниям от таймера), однако провы обычно кластер ставят из нескольких тачек, и днс-ом нагрузку между серваками разбрасывают, или просто юзеров с разных улиц или домов кидает на разные впнки. На мой вгляд эти впнки вообще в полной мере нахрен не нужны, (ну возможно за исключением юзателей белых ипов). Прицепился юзверь к серваку, авторизовался, далее он с этой впнки вообще выгоняется, и ходит себе по инету напрямую, пока комп не выключит (шлюз его арпами проверяет). Polling эта технология во фре называется.В Linux-e NAPI. Вставить ник Quote
jab Posted April 30, 2008 Posted April 30, 2008 Это уже вопрос не ко мне, ибо демонов стараюсь обходить :) В mpd два единственных упоминания, хоть как-то связанных с с route table - это "net/route.h" и "/sbin/route". Вставить ник Quote
vyruz Posted April 30, 2008 Posted April 30, 2008 нормально все с фрюхой, работает ок, хотя согласен, от рук сильно зависит. по теме: Polling есть? в линухе его вроде NAPI зовут Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.