Сколько не гуглил никак для себя не могу найти ответ на вопрос. Увеличится ли производительность системы на основе MPD если в сервер воткнуть второй процессор и скомпилировать SMP ядро? На сколько я понимаю MPD не умеет работать с несколькими процессорами.Сейчас стоит P4 xeon 3.6Ггц, 1гиг мозгов. В пиках загрузки сидит на нем 400 с небольшим человек и top показывает idle где-то в районе 35%. Это ведь пожалуй значит что еще пара сотен клиентов и сервак загнется.
MPD авторизует клиентов напрямую через Mysql таблички без использования радиуса.Конфиг примерно такой:
default:
load i0
load i1i0:
new -i ng0 i0 i0
load i_standarti1:
new -i ng1 i1 i1
load i_standarti_standart:
set iface disable on-demand
set iface enable proxy-arp
set iface idle 86400
set iface up-script /usr/local/mpd-3.18/etc/if-up.pl
set iface down-script /usr/local/mpd-3.18/etc/if-down.pl
set bundle disable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set ipcp yes vjcomp
set ipcp ranges 10.0.10.1/32 0.0.0.0/0
set ipcp dns 213.148.16.1 213.148.18.1
set bundle mysql_hostname 1.1.1.1
set bundle mysql_database vpn
set bundle mysql_username vpn
set bundle mysql_password let_me_in
set bundle mysql_sql "SELECT трам пам пам"
set bundle disable compression
set bundle disable crypt-reqd
set pptp disable windowing
set pptp enable always-ack
set iface enable tcpmssfix
default_config:
set link type pptp
set pptp enable incoming
set pptp disable originateНу то есть ничего хитрого, все компресии и шифрования выключены.
отключение
set iface enable tcpmssfix
сильно снизит загрузку CPU но без него никак нельзя...Конечный вопрос выглядит так. Есть ли способ увеличить производительность этой систамы без добавления второго VPN сервера в сеть?
И второй вопрос. Падает ли у вас MPD с ошибкой segv при большом количестве пользователей? У меня такое происходит раз в 3 недели где-то не смотря на то что какие только патчи я только не ставил уже.
Два сервака - один целерон/2.4, второй - Р4/3.0, на обоих по 1Гб памяти. Загрузка примерно одинаковая - на каждом в он-лайне по 40-50 тунелей с шифрованием без компрессии. На том серваке, где Р4, естесственно есть поддержка НТ, поэтому ядро скомпилено как SMP. Субъективно разница в загрузке серверов не обнаружена на обоих примерно 95%.На первом сервере FreeBSD 5.4 + MPD 3.18 + Freeradius 1.0.4. На втором сервере FreeBSD 5.3 + MPD 3.18 + Freeradius 1.0.3. Оба радиуса и оба МПД патченные под биллинг Freenibs. Оба сервера валятся в ребут с периодом примерно раз в 3-6 недель без каких-либо замеченных причин (в логах нету ничего). Пробовали менять память/материнки - не влияет. Есть подозрение, что причина кроется именно в софте (может и в MPD).
Кстати, а не пробовали MPD4?
>Два сервака - один целерон/2.4, второй - Р4/3.0, на обоих по 1Гб
>памяти. Загрузка примерно одинаковая - на каждом в он-лайне по 40-50
>тунелей с шифрованием без компрессии. На том серваке, где Р4, естесственно
>есть поддержка НТ, поэтому ядро скомпилено как SMP. Субъективно разница в
>загрузке серверов не обнаружена на обоих примерно 95%.А если отключить SMP и HT в биосе станет ли процессору P4 полегче? Не проверяли?
40-50 тунелей это очень мало дня нас. Было бы очень хорошо если бы этот сервак потянул хотя бы 1000 пользователей, но это возможно только тогда если воткнуть второй процессор и MPD будет корректно работать на обоих. А это опять же вопрос.>
>На первом сервере FreeBSD 5.4 + MPD 3.18 + Freeradius 1.0.4. На
>втором сервере FreeBSD 5.3 + MPD 3.18 + Freeradius 1.0.3. Оба
>радиуса и оба МПД патченные под биллинг Freenibs. Оба сервера валятся
>в ребут с периодом примерно раз в 3-6 недель без каких-либо
>замеченных причин (в логах нету ничего). Пробовали менять память/материнки - не
>влияет. Есть подозрение, что причина кроется именно в софте (может и
>в MPD).
У нас сервер никогда не перегружается, падает только демон MPD. Вчера костыль написал что бы он автоматически поднимался при падении, но сам факт этого очень сильно раздражает...>Кстати, а не пробовали MPD4?
Нет, но обязательно попробую. По поводу него тоже вопрос понимает ли он SMP.
У меня такое подозрение что во FreeBSD процессор делится по приложениям. То есть одно приложение не может использовать более одного процессора, если только оно не специально под это писалось...
Есть ли Гуру?
Вопрос все еще в силе.
Не уже ли никто не знает и не пробовал???!!!
расчёт на 600 интерфейсов на мпд?
посты без ответов остались когда пытались более 380 сделатьврядли нагрузка упадёт. год назад делал такую штуку на фре4. железо примерно одинаковое.
Вопрос может от меня не по теме треда будет, но все-таки:
есть сервак
Apr 18 17:26:04 as1 kernel: FreeBSD 6.0-RELEASE-p6 #0: Tue Apr 18 16:51:05 EEST 2006
Apr 18 17:26:04 as1 kernel: worm@as1:/usr/src/sys/i386/compile/PPP
Apr 18 17:26:04 as1 kernel: Timecounter "i8254" frequency 1193182 Hz quality 0
Apr 18 17:26:04 as1 kernel: CPU: Intel(R) Pentium(R) D CPU 3.00GHz (2998.50-MHz 686-class CPU)
Apr 18 17:26:04 as1 kernel: Origin = "GenuineIntel" Id = 0xf62 Stepping = 2
Apr 18 17:26:04 as1 kernel: Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH
,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Apr 18 17:26:04 as1 kernel: Features2=0xe43d<SSE3,RSVD2,MON,DS_CPL,<b5>,CNTX-ID,CX16,<b14>,<b15>>
Apr 18 17:26:04 as1 kernel: AMD Features=0x20100000<NX,LM>
Apr 18 17:26:04 as1 kernel: Hyperthreading: 2 logical CPUs
Apr 18 17:26:04 as1 kernel: real memory = 1072144384 (1022 MB)
Apr 18 17:26:04 as1 kernel: avail memory = 1040019456 (991 MB)
Apr 18 17:26:04 as1 kernel: ACPI APIC Table: <INTEL 04DT044 >
Apr 18 17:26:04 as1 kernel: FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
который пока что держит до 500 пользователей (прописал
# cat /boot/loader.conf
kern.ipc.maxpipekva="50331648")
и теперь на серваке пытаюсь посмотреть sysctl -a, после чего выводится список(примерно половина) и на консоли наблюдаю
Apr 18 17:26:04 as1 kernel:
Apr 18 17:26:04 as1 kernel:
Apr 18 17:26:04 as1 kernel: Fatal trap 12: page fault while in kernel mode
Apr 18 17:26:04 as1 kernel: cpuid = 0; apic id = 00
Apr 18 17:26:04 as1 kernel: fault virtual address = 0x847cef00
Apr 18 17:26:04 as1 kernel: fault code = supervisor write, page not present
Apr 18 17:26:04 as1 kernel: instruction pointer = 0x20:0xc23fadc0
Apr 18 17:26:04 as1 kernel: stack pointer = 0x28:0xe9ab5bd0
Apr 18 17:26:04 as1 kernel: frame pointer = 0x28:0xc05b4d50
Apr 18 17:26:04 as1 kernel: code segment = base 0x0, limit 0xfffff, type 0x1b
Apr 18 17:26:04 as1 kernel: = DPL 0, pres 1, def32 1, gran 1
Apr 18 17:26:04 as1 kernel: processor eflags = interrupt enabled, resume, IOPL = 0
Apr 18 17:26:04 as1 kernel: current process = 2676 (sysctl)
Apr 18 17:26:04 as1 kernel: trap number = 12
Apr 18 17:26:04 as1 kernel: panic: page fault
Apr 18 17:26:04 as1 kernel: cpuid = 0
Apr 18 17:26:04 as1 kernel: Uptime: 8m0s
Apr 18 17:26:04 as1 kernel: Dumping 1022 MB (4 chunks)
Apr 18 17:26:04 as1 kernel: chunk 0: 1MB (159 pages) ... ok
Apr 18 17:26:04 as1 kernel: chunk 1: 1022MB (261498 pages) 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766 750
734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 23
8 222 206 190 174 158 142 126 110 94 78 62 46 30 14 ... ok
Apr 18 17:26:04 as1 kernel: chunk 2: 1MB (4 pages) ... ok
Apr 18 17:26:04 as1 kernel: chunk 3: 1MB (1 pages) ... ok
Apr 18 17:26:04 as1 kernel:
Apr 18 17:26:04 as1 kernel: Dump complete
Apr 18 17:26:04 as1 kernel: Automatic reboot in 15 seconds - press a key on the console to abort
Apr 18 17:26:04 as1 kernel: Rebooting...
Если же mpd-3.18 не запущен, то все в норме и система такие мессаги не выдает.
Проблема явно не в железе. Какие еще параметры нужно изменить, дабы не было такой неприятной штуки?
Иногда Fatal trap 12: случается по другой причине, но бывает это редко. На серваке крутится еще zebra(ospfd, bgpd), snmpd.
>Вопрос может от меня не по теме треда будет, но все-таки:
>есть сервак
>Apr 18 17:26:04 as1 kernel: FreeBSD 6.0-RELEASE-p6 #0: Tue Apr 18 16:51:05
>EEST 2006
Не рановато ли на шестерке держать что-то серьездное?
Хотя у меня на шестерке крутится quagga с full view BGP таблички и 4 апстрима и падений не было ни разу.
Но я бы этого делать не стал. На пятерке все отлично работает, а различаются они чуть.>Apr 18 17:26:04 as1 kernel: FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>который пока что держит до 500 пользователей (прописал
># cat /boot/loader.conf
>kern.ipc.maxpipekva="50331648")# sysctl -A |grep kern.ipc.maxpipekva
kern.ipc.maxpipekva: 66777216Press any key to continue...
>и теперь на серваке пытаюсь посмотреть sysctl -a, после чего выводится список(примерно
>половина) и на консоли наблюдаю
А какая строчка последней выводится?>Apr 18 17:26:04 as1 kernel:
>Apr 18 17:26:04 as1 kernel:
>Apr 18 17:26:04 as1 kernel: Fatal trap 12: page fault while in
>kernel mode>Apr 18 17:26:04 as1 kernel: Rebooting...
>Если же mpd-3.18 не запущен, то все в норме и система такие
>мессаги не выдает.
>Проблема явно не в железе. Какие еще параметры нужно изменить, дабы не
>было такой неприятной штуки?
>Иногда Fatal trap 12: случается по другой причине, но бывает это редко.
>На серваке крутится еще zebra(ospfd, bgpd), snmpd.
Возможно это чем-то поможет:
# cat ./sysctl.conf
kern.ipc.somaxconn=1024
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536
net.inet.udp.recvspace=65536
net.inet.udp.maxdgram = 65536
net.inet.raw.maxdgram=65536
net.inet.raw.recvspace=65536
kern.ipc.nmbclusters=65535
kern.maxfiles=65535
kern.maxfilesperproc=32000
net.inet.ip.fw.dyn_buckets=65536
net.inet.ip.fw.dyn_max=65536
net.inet.ip.dummynet.debug=1
net.inet.ip.rtmaxcache=1024
net.inet.ip.ttl=255
Press any key to continue...
>>Apr 18 17:26:04 as1 kernel: FreeBSD 6.0-RELEASE-p6 #0: Tue Apr 18 16:51:05
>>EEST 2006
>Не рановато ли на шестерке держать что-то серьездное?
>Хотя у меня на шестерке крутится quagga с full view BGP таблички
>и 4 апстрима и падений не было ни разу.
>Но я бы этого делать не стал. На пятерке все отлично работает,
>а различаются они чуть.
Выбора особо не было:
kernel: atapci1: <Intel ICH7 SATA150 controller> port 0x30c8-0x30cf,0x30e4-0x30e7,0x30c0-0x30c7,0x30e0-0
Попытки установить 5.3, 5.4 были безуспешны...
>>Apr 18 17:26:04 as1 kernel: FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>>который пока что держит до 500 пользователей (прописал
>># cat /boot/loader.conf
>>kern.ipc.maxpipekva="50331648")
>
># sysctl -A |grep kern.ipc.maxpipekva
>kern.ipc.maxpipekva: 66777216
>
>Press any key to continue...
>>и теперь на серваке пытаюсь посмотреть sysctl -a, после чего выводится список(примерно
>>половина) и на консоли наблюдаю
>А какая строчка последней выводится?
Заканчивается вывод и потом следует ребут на dev.pic.2.чsk: ACPI PCI "bla-bla-bla"
>
>>Apr 18 17:26:04 as1 kernel:
>>Apr 18 17:26:04 as1 kernel:
>>Apr 18 17:26:04 as1 kernel: Fatal trap 12: page fault while in
>>kernel mode
>
>>Apr 18 17:26:04 as1 kernel: Rebooting...
>>Если же mpd-3.18 не запущен, то все в норме и система такие
>>мессаги не выдает.
>>Проблема явно не в железе. Какие еще параметры нужно изменить, дабы не
>>было такой неприятной штуки?
>>Иногда Fatal trap 12: случается по другой причине, но бывает это редко.
>>На серваке крутится еще zebra(ospfd, bgpd), snmpd.
>Возможно это чем-то поможет:
># cat ./sysctl.conf
>kern.ipc.somaxconn=1024
>net.inet.tcp.sendspace=65536
>net.inet.tcp.recvspace=65536
>net.local.stream.recvspace=65536
>net.local.stream.sendspace=65536
>net.inet.udp.recvspace=65536
>net.inet.udp.maxdgram = 65536
>net.inet.raw.maxdgram=65536
>net.inet.raw.recvspace=65536
>kern.ipc.nmbclusters=65535
>kern.maxfiles=65535
>kern.maxfilesperproc=32000
>net.inet.ip.fw.dyn_buckets=65536
>net.inet.ip.fw.dyn_max=65536
>net.inet.ip.dummynet.debug=1
>net.inet.ip.rtmaxcache=1024
>net.inet.ip.ttl=255
>Press any key to continue...
Не помогло :(
Есть еще идеи?
>расчёт на 600 интерфейсов на мпд?
>посты без ответов остались когда пытались более 380 сделать
Могу помочь. MPD патченная - перепатченая. =)
Там много проблем тем более на четвертой БСД. На пятерке проблема с количеством интерфейсов решена. Это из-за длины названия нетграф ноды.
Могу выложить куда-нить свои сорцы с наложенными патчами.А рассчет делался на максимальное количество подключений которые машина сможет обработать.
Скоро мои 500 закончатся и бду расширять до 600. Уверен что смогу сделать и больше, но машина не потянет. Из-за это и родился изначальный вопрос про SMP, HT я отключил спецом еще когда сервак у меня на столе лежал..Очень не хочется ставить второй VPN сервер когда и в этот можно еще второй проц воткнуть.
Есть еще идея поднять 2 MPD демона на машине и заставить их слушать разные ипы и 2 проца. это должно решить ситуацию, но IMHO это какой-то изврат... =(>врядли нагрузка упадёт. год назад делал такую штуку на фре4. железо примерно
>одинаковое.Ну не верю я что ни у кого нету очень загруженного VPN сервера на базе MPD с двумя процессорами... =(((
В чем суть патчей?