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

Поставил на один из серверов потестировать accel pptpd.

 

Все замечательно, но вот процессы pptpd/pppd похоже вовремя, а может и вообще не умирают,

то есть пользователь уже давно отключился, судя по netstat, а процессы и ppp интерфейс все еще живут.

 

Кто использует это решение подскажите, может где чего не докрутил?

 

Спасибо.

 

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


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

Вот подробности происходящего:

 

в логах видно, что процесс pptpd понимает, что клиент отвалился и ждет завершения pppd:

pptpd[26016]: CTRL: Reaping child PPP[26017].

 

 

Включение для ppp параметров

 

lcp-echo-interval 20

lcp-echo-failure 3

 

тоже не меняет ситуацию.

 

Пока прикрутил костыль, периодески убивающий такие процессы по результатам сверки таблицы процессов и netstat.

 

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


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

Расскажите, есть реальный выигрыш в производительности при использовании accel-pptp?

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


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

Расскажите, есть реальный выигрыш в производительности при использовании 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

 

vpn ~ # ip ro | grep ppp | wc -l
368

368 юзеров. Со стандартным пптп просто не доживало до такого количества, а сейчас серваки просто отдыхают

 

Сессии не виснут, ни разу не было замечено...

 

Linux vpn.tomilino.net 2.6.23-gentoo-r8 #11 SMP

 

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


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

А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от 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% судя по данным выше ;)

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


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

А причем тут кол-во пользователей? От них ничего не зависит. Вся нагрузка зависит от 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 в идеальных условиях =)

 

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


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

вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow

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


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

Мм, большое спасибо, обязательно на днях попробую =)

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


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

вместо fprobe-ulog лучше использовать ipt_netflow http://sourceforge.net/projects/ipt-netflow

Тестируем. Результаты отпишу.

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


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

а с какими ядрами пробуете?

У меня сходу accel-pptp не собрался...

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

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


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

Начиная с 2.6.18 должно собираться без проблем.

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


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

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

#include <asm/semaphore.h>

на

#include <linux/semaphore.h>

в if_pppox.h

 

В остальном - запустил, смотрю...

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


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

В ДВА?! У меня раз этак в 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 мбит или около того

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


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

а что за комп... до 200 сессий у меня на однпроцовых одноядерных атлонах было с мппе128...

на оптероне 2*2 - до 800 сессий.. раффик суммарный 70 мбит или около того

Это с родным или accel? У меня просто на каждом их них ещё шейпер+нат+fprobe крутятся - тоже грузят

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

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


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

с родным...

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

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


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

я собственно, думал что что то делаю не так.. мало траффика и сессий на такую машину....

 

 

а чего ждать от accel-pptp?

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


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

Ну, pppX - не значит, что в данный момент на нём X человек )

А трафика у вас мало, у нас максимум может быть до 500мб/с, на таких обьёмах core quad с родным пптп насмерть ложился при ~200-300 человек. Accel сегодня попробовал с ipt-netflow вместо fprobe (спасибо, disappointed! =), трафик был ~40 мбайт/с, ~650 юзеров. Мне на одно подключение отдавал 5-7 мбайт. Процы заняты были процентов на 30, но уже начал events/0 подскакивать =)

 

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


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

Хм, тестовый сервер лег в панику... при 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

 

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


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

Хм, тестовый сервер лег в панику... при 600+ коннектах, хотя до этого умирал на 200

 

с одной стороны приятно что 600, с другой паника... )

 

Проц на нем был (и есть)

Да, паники время от времени вылазят, причем я не заметил никакой закономерности, непонятно, accel-pptp ли виноват =(

 

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


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

Поставил

echo 30 > /proc/sys/kernel/panic

Буду посмотреть )

 

а вообще да, неслабо, в 3 раза больше конектов...

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


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

Поставил на один из серверов потестировать 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

}

 

Поделитесь опытом как решили ету проблемму у себя.. может чего недонастроил(((

 

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


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

Поделитесь опытом как решили ету проблемму у себя.. может чего недонастроил(((

Решил проблему запуском вот такого костыля раз в минуту.

 

Алгоритм очень простой: берем список процессов, берем список 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;
        }
    }
}

 

 

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


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

у меня такой проблемы нет.

Какое ядро?

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


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

у меня такой проблемы нет.

Какое ядро?

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

 

 

 

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


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

Join the conversation

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

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

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

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

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

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

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