kisa Posted October 11, 2008 · Report post Поставил на один из серверов потестировать accel pptpd. Все замечательно, но вот процессы pptpd/pppd похоже вовремя, а может и вообще не умирают, то есть пользователь уже давно отключился, судя по netstat, а процессы и ppp интерфейс все еще живут. Кто использует это решение подскажите, может где чего не докрутил? Спасибо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted October 12, 2008 · Report post Вот подробности происходящего: в логах видно, что процесс pptpd понимает, что клиент отвалился и ждет завершения pppd: pptpd[26016]: CTRL: Reaping child PPP[26017]. Включение для ppp параметров lcp-echo-interval 20 lcp-echo-failure 3 тоже не меняет ситуацию. Пока прикрутил костыль, периодески убивающий такие процессы по результатам сверки таблицы процессов и netstat. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
a0d75 Posted November 25, 2008 · Report post Расскажите, есть реальный выигрыш в производительности при использовании accel-pptp? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted November 26, 2008 · Report post Расскажите, есть реальный выигрыш в производительности при использовании accel-pptp? Есть и очень большой. Приблизительно раза в два нагрузка на проц уменьшилась. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 26, 2008 · Report post В ДВА?! У меня раз этак в 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted November 27, 2008 · Report post А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 27, 2008 · Report post А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted November 27, 2008 · Report post вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 27, 2008 · Report post Мм, большое спасибо, обязательно на днях попробую =) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
disappointed Posted November 27, 2008 · Report post вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow Тестируем. Результаты отпишу. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 28, 2008 (edited) · Report post а с какими ядрами пробуете? У меня сходу accel-pptp не собрался... Edited November 28, 2008 by sirmax Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Kirya Posted November 28, 2008 · Report post Начиная с 2.6.18 должно собираться без проблем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 28, 2008 · Report post Начиная с 2.6.18 должно собираться без проблем.как минимум потребовалось заменить #include <asm/semaphore.h> на #include <linux/semaphore.h> в if_pppox.h В остальном - запустил, смотрю... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 28, 2008 · Report post В ДВА?! У меня раз этак в 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 28, 2008 (edited) · Report post а что за комп... до 200 сессий у меня на однпроцовых одноядерных атлонах было с мппе128...на оптероне 2*2 - до 800 сессий.. раффик суммарный 70 мбит или около того Это с родным или accel? У меня просто на каждом их них ещё шейпер+нат+fprobe крутятся - тоже грузят Edited November 28, 2008 by Wingman Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 28, 2008 · Report post с родным... 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 28, 2008 · Report post я собственно, думал что что то делаю не так.. мало траффика и сессий на такую машину.... а чего ждать от accel-pptp? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 28, 2008 · Report post Ну, pppX - не значит, что в данный момент на нём X человек ) А трафика у вас мало, у нас максимум может быть до 500мб/с, на таких обьёмах core quad с родным пптп насмерть ложился при ~200-300 человек. Accel сегодня попробовал с ipt-netflow вместо fprobe (спасибо, disappointed! =), трафик был ~40 мбайт/с, ~650 юзеров. Мне на одно подключение отдавал 5-7 мбайт. Процы заняты были процентов на 30, но уже начал events/0 подскакивать =) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted November 30, 2008 · Report post Хм, тестовый сервер лег в панику... при 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wingman Posted December 1, 2008 · Report post Хм, тестовый сервер лег в панику... при 600+ коннектах, хотя до этого умирал на 200 с одной стороны приятно что 600, с другой паника... ) Проц на нем был (и есть) Да, паники время от времени вылазят, причем я не заметил никакой закономерности, непонятно, accel-pptp ли виноват =( Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted December 1, 2008 · Report post Поставил echo 30 > /proc/sys/kernel/panic Буду посмотреть ) а вообще да, неслабо, в 3 раза больше конектов... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
andrr Posted December 4, 2008 · Report post Поставил на один из серверов потестировать 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted December 4, 2008 · Report post Поделитесь опытом как решили ету проблемму у себя.. может чего недонастроил((( Решил проблему запуском вот такого костыля раз в минуту. Алгоритм очень простой: берем список процессов, берем список 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sirmax Posted December 4, 2008 · Report post у меня такой проблемы нет. Какое ядро? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kisa Posted December 4, 2008 · Report post у меня такой проблемы нет.Какое ядро? 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...