kisa Posted October 11, 2008 Posted October 11, 2008 Поставил на один из серверов потестировать accel pptpd. Все замечательно, но вот процессы pptpd/pppd похоже вовремя, а может и вообще не умирают, то есть пользователь уже давно отключился, судя по netstat, а процессы и ppp интерфейс все еще живут. Кто использует это решение подскажите, может где чего не докрутил? Спасибо. Вставить ник Quote
kisa Posted October 12, 2008 Author Posted October 12, 2008 Вот подробности происходящего: в логах видно, что процесс pptpd понимает, что клиент отвалился и ждет завершения pppd: pptpd[26016]: CTRL: Reaping child PPP[26017]. Включение для ppp параметров lcp-echo-interval 20 lcp-echo-failure 3 тоже не меняет ситуацию. Пока прикрутил костыль, периодески убивающий такие процессы по результатам сверки таблицы процессов и netstat. Вставить ник Quote
a0d75 Posted November 25, 2008 Posted November 25, 2008 Расскажите, есть реальный выигрыш в производительности при использовании accel-pptp? Вставить ник Quote
kisa Posted November 26, 2008 Author Posted November 26, 2008 Расскажите, есть реальный выигрыш в производительности при использовании accel-pptp? Есть и очень большой. Приблизительно раза в два нагрузка на проц уменьшилась. Вставить ник Quote
Wingman Posted November 26, 2008 Posted November 26, 2008 В ДВА?! У меня раз этак в 20 как минимум нагрузка уменьшилась =) Cpu0 : 1.3% us, 5.2% sy, 0.0% ni, 63.6% id, 0.0% wa, 0.0% hi, 29.9% si Cpu1 : 1.3% us, 2.6% sy, 0.0% ni, 65.8% id, 0.0% wa, 0.0% hi, 30.3% si Cpu2 : 0.0% us, 2.7% sy, 0.0% ni, 73.3% id, 0.0% wa, 0.0% hi, 24.0% si Cpu3 : 3.9% us, 3.9% sy, 0.0% ni, 64.9% id, 0.0% wa, 1.3% hi, 26.0% si vpn ~ # ip ro | grep ppp | wc -l 368 368 юзеров. Со стандартным пптп просто не доживало до такого количества, а сейчас серваки просто отдыхают Сессии не виснут, ни разу не было замечено... Linux vpn.tomilino.net 2.6.23-gentoo-r8 #11 SMP Вставить ник Quote
kisa Posted November 27, 2008 Author Posted November 27, 2008 А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от pps, обрабатываемых роутером. Я когда тестировал accel pptp я делал следующий тест: host1 -- сервер pptp -- host2, с host1 посылались пакеты флуд пингом на host2 в течении определенного времени. Так вот за одно и тоже время accel pptp раутил примерно в два раза больше пакетов. В ДВА?! У меня раз этак в 20 как минимум нагрузка уменьшилась =) Cpu0 : 1.3% us, 5.2% sy, 0.0% ni, 63.6% id, 0.0% wa, 0.0% hi, 29.9% si Cpu1 : 1.3% us, 2.6% sy, 0.0% ni, 65.8% id, 0.0% wa, 0.0% hi, 30.3% si Cpu2 : 0.0% us, 2.7% sy, 0.0% ni, 73.3% id, 0.0% wa, 0.0% hi, 24.0% si Cpu3 : 3.9% us, 3.9% sy, 0.0% ni, 64.9% id, 0.0% wa, 1.3% hi, 26.0% si В 20? То есть до этого у вас нагрузка была ~500% судя по данным выше ;) Вставить ник Quote
Wingman Posted November 27, 2008 Posted November 27, 2008 А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от pps, обрабатываемых роутером.Я когда тестировал accel pptp я делал следующий тест: host1 -- сервер pptp -- host2, с host1 посылались пакеты флуд пингом на host2 в течении определенного времени. Так вот за одно и тоже время accel pptp раутил примерно в два раза больше пакетов. В ДВА?! У меня раз этак в 20 как минимум нагрузка уменьшилась =) Cpu0 : 1.3% us, 5.2% sy, 0.0% ni, 63.6% id, 0.0% wa, 0.0% hi, 29.9% si Cpu1 : 1.3% us, 2.6% sy, 0.0% ni, 65.8% id, 0.0% wa, 0.0% hi, 30.3% si Cpu2 : 0.0% us, 2.7% sy, 0.0% ni, 73.3% id, 0.0% wa, 0.0% hi, 24.0% si Cpu3 : 3.9% us, 3.9% sy, 0.0% ni, 64.9% id, 0.0% wa, 1.3% hi, 26.0% si В 20? То есть до этого у вас нагрузка была ~500% судя по данным выше ;) Черт =) Ладно, про "20" - это я на эмоциях =) Но с родным pptp серваки дохли задолго до теперешних значений. Трафик, согласно ethstatus: 20.02 MB/s 51710 Packets/s А сейчас в итоге всё упирается в fprobe-ulog, которое, скотино, висит только на одном проце, и пока остальное свободны и могут спокойно обслуживать юзеров - не даёт это делать =) Вот никак не соберусь вырубить его и ради интереса посмотреть, что выдержит accel-pptp в идеальных условиях =) Вставить ник Quote
kisa Posted November 27, 2008 Author Posted November 27, 2008 вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow Вставить ник Quote
Wingman Posted November 27, 2008 Posted November 27, 2008 Мм, большое спасибо, обязательно на днях попробую =) Вставить ник Quote
disappointed Posted November 27, 2008 Posted November 27, 2008 вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow Тестируем. Результаты отпишу. Вставить ник Quote
sirmax Posted November 28, 2008 Posted November 28, 2008 (edited) а с какими ядрами пробуете? У меня сходу accel-pptp не собрался... Edited November 28, 2008 by sirmax Вставить ник Quote
Kirya Posted November 28, 2008 Posted November 28, 2008 Начиная с 2.6.18 должно собираться без проблем. Вставить ник Quote
sirmax Posted November 28, 2008 Posted November 28, 2008 Начиная с 2.6.18 должно собираться без проблем.как минимум потребовалось заменить #include <asm/semaphore.h> на #include <linux/semaphore.h> в if_pppox.h В остальном - запустил, смотрю... Вставить ник Quote
sirmax Posted November 28, 2008 Posted November 28, 2008 В ДВА?! У меня раз этак в 20 как минимум нагрузка уменьшилась =) Cpu0 : 1.3% us, 5.2% sy, 0.0% ni, 63.6% id, 0.0% wa, 0.0% hi, 29.9% si Cpu1 : 1.3% us, 2.6% sy, 0.0% ni, 65.8% id, 0.0% wa, 0.0% hi, 30.3% si Cpu2 : 0.0% us, 2.7% sy, 0.0% ni, 73.3% id, 0.0% wa, 0.0% hi, 24.0% si Cpu3 : 3.9% us, 3.9% sy, 0.0% ni, 64.9% id, 0.0% wa, 1.3% hi, 26.0% si vpn ~ # ip ro | grep ppp | wc -l 368 368 юзеров. Со стандартным пптп просто не доживало до такого количества, а сейчас серваки просто отдыхают Сессии не виснут, ни разу не было замечено... Linux vpn.tomilino.net 2.6.23-gentoo-r8 #11 SMP а что за комп... до 200 сессий у меня на однпроцовых одноядерных атлонах было с мппе128... на оптероне 2*2 - до 800 сессий.. раффик суммарный 70 мбит или около того Вставить ник Quote
Wingman Posted November 28, 2008 Posted November 28, 2008 (edited) а что за комп... до 200 сессий у меня на однпроцовых одноядерных атлонах было с мппе128...на оптероне 2*2 - до 800 сессий.. раффик суммарный 70 мбит или около того Это с родным или accel? У меня просто на каждом их них ещё шейпер+нат+fprobe крутятся - тоже грузят Edited November 28, 2008 by Wingman Вставить ник Quote
sirmax Posted November 28, 2008 Posted November 28, 2008 с родным... ppp399 - последний сейчас ifb423 - максимум после ребута а вообще ppp800 я на нем видел. Но это уже было плохо. Таких ядра 4 processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 65 model name : Dual-Core AMD Opteron(tm) Processor 2214 stepping : 2 cpu MHz : 2194.481 cache size : 1024 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy bogomips : 4388.96 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp tm stc Вставить ник Quote
sirmax Posted November 28, 2008 Posted November 28, 2008 я собственно, думал что что то делаю не так.. мало траффика и сессий на такую машину.... а чего ждать от accel-pptp? Вставить ник Quote
Wingman Posted November 28, 2008 Posted November 28, 2008 Ну, pppX - не значит, что в данный момент на нём X человек ) А трафика у вас мало, у нас максимум может быть до 500мб/с, на таких обьёмах core quad с родным пптп насмерть ложился при ~200-300 человек. Accel сегодня попробовал с ipt-netflow вместо fprobe (спасибо, disappointed! =), трафик был ~40 мбайт/с, ~650 юзеров. Мне на одно подключение отдавал 5-7 мбайт. Процы заняты были процентов на 30, но уже начал events/0 подскакивать =) Вставить ник Quote
sirmax Posted November 30, 2008 Posted November 30, 2008 Хм, тестовый сервер лег в панику... при 600+ коннектах, хотя до этого умирал на 200 с одной стороны приятно что 600, с другой паника... ) Проц на нем был (и есть) massaraksh etc # cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 47 model name : AMD Athlon(tm) 64 Processor 3000+ stepping : 2 cpu MHz : 1802.250 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm bogomips : 3604.50 clflush size : 64 power management: ts fid vid ttp tm stc Вставить ник Quote
Wingman Posted December 1, 2008 Posted December 1, 2008 Хм, тестовый сервер лег в панику... при 600+ коннектах, хотя до этого умирал на 200 с одной стороны приятно что 600, с другой паника... ) Проц на нем был (и есть) Да, паники время от времени вылазят, причем я не заметил никакой закономерности, непонятно, accel-pptp ли виноват =( Вставить ник Quote
sirmax Posted December 1, 2008 Posted December 1, 2008 Поставил echo 30 > /proc/sys/kernel/panic Буду посмотреть ) а вообще да, неслабо, в 3 раза больше конектов... Вставить ник Quote
andrr Posted December 4, 2008 Posted December 4, 2008 Поставил на один из серверов потестировать accel pptpd. Все замечательно, но вот процессы pptpd/pppd похоже вовремя, а может и вообще не умирают, то есть пользователь уже давно отключился, судя по netstat, а процессы и ppp интерфейс все еще живут. Кто использует это решение подскажите, может где чего не докрутил? Спасибо. Тоже были проблеммы с рррd.. Прочитал Ваш пост собрал. Ебилд брал тут - только изменил версию на последнюю) - собралось беспроблемм.. Как и писали ранее - всё замечательно, но появилась такая же проблемма с процессами.. частично решил её добавлением опции "nopersist" в /etc/ppp/options.pptpd .., но несовсем: - после подключения процесы умирают но несразу, а нескалько секунд((. Если обанент в ето же время конектится опять - то создаётся еще один такой же процесс но на другом интерфейсе ррр, и после етого данное соединение неработает ни на одном из етих интерфейсов (невыдается ip). Почитал литературу и конфиги.. но пока только возникает одна мысль - положить скрипты *ip-up ip-down в /etc/ppp (их дергает при конекте) и в с помощью них понтралировать жизнь процессов pptpd/pppd.. options.pptpd { name pptpd require-mschap-v2 ms-dns 172.16.1.1 proxyarp debug lock nobsdcomp nodeflate nopersist } Поделитесь опытом как решили ету проблемму у себя.. может чего недонастроил((( Вставить ник Quote
kisa Posted December 4, 2008 Author Posted December 4, 2008 Поделитесь опытом как решили ету проблемму у себя.. может чего недонастроил((( Решил проблему запуском вот такого костыля раз в минуту. Алгоритм очень простой: берем список процессов, берем список tcp конектов pppd, если процесс есть, а конекта нет, то убиваем процесс. #!/usr/bin/perl -w my @ps = `ps ax`; sleep(3); my @netstat = `netstat -an | egrep ":1723[[:space:]]" | grep ESTAB`; my $ns_ips = []; my $l; foreach $l (@netstat) { push(@$ns_ips, $1) if $l =~ /(\d+\.\d+.\d+.\d+):\d+\s+ESTABLISHED/; } my $pppd_ips = []; my $pppd_pids = []; my ($j, $i, $ip, $pid); foreach $l (@ps) { if ($l =~ /^\s*(\d+).+pppd.+ipparam\s(\d+\.\d+\.\d+\.\d+)/) { ($ip, $pid) = ($2, $1); push(@$pppd_ips, $ip); push(@$pppd_pids, $pid); } } for ($i=0; $i<=$#$pppd_ips; $i++) { $ip = $pppd_ips->[$i]; $pid = $pppd_pids->[$i]; for ($j=0; $j<=$#$ns_ips; $j++) { last if ($ns_ips->[$j] eq $ip); } if ($j > $#$ns_ips) { my $ns_entry = `netstat -an | egrep ":1723[[:space:]]" | grep ESTAB | grep $ip:`; if ($ns_entry eq '') { `date >> /var/log/kill_ppp.log; echo 'ip:$ip pid:$pid' >> /var/log/kill_ppp.log`; `kill $pid`; sleep 2; } } } Вставить ник Quote
sirmax Posted December 4, 2008 Posted December 4, 2008 у меня такой проблемы нет. Какое ядро? Вставить ник Quote
kisa Posted December 4, 2008 Author Posted December 4, 2008 у меня такой проблемы нет.Какое ядро? Linux nas2 2.6.27.2 #2 SMP Wed Oct 22 14:57:29 MSD 2008 i686 Intel® Pentium® D CPU 3.40GHz GenuineIntel GNU/Linux Вставить ник 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.