Jump to content
Калькуляторы

pppoe-server на linux + зависшие pppd сервак периодически стал стопориться

Добрый день.

Имеется pppoe-server 3.10, работающий в режиме ядра, и pppd 2.4.4. Centos 5,2, Xeon двухъядерный 3GHz, 2 гига памяти, интеловская мама. Сервак раздаёт инет, канал 30 МБит, и в часы большой нагрузки, когда больше 800 человек подключается, бывает следующее: один из процессов pppd оказывается в топе top'а, грузит проц на 100-102 процента, и система реагирует только на пинг - если в это время был запущен top, то можно видеть, что общая загрузка системы поднимается до 200-300. Хотя пинги в это время до самого сервака <1 мс. Если успеть найти этот интерфейс ppp и сделать ifconfig pppX down - то всё становится нормально, но минут через 10-15 может снова повторится. Попробовал засунуть выявление и исправление этой фигни в крон - но в моменты такого зависона крон не срабатывает, задачи выполнять начинает только после того, как ppp ляжет.

Что можно попробовать сделать, куда копнуть? Может патч для pppd есть? Отчего вообще он может так на себя все ресурсы отвлекать?

Вот вывод ifconfig такого мёртвого pppd

 

ppp564 Link encap:Point-to-Point Protocol

POINTOPOINT NOARP MULTICAST MTU:1492 Metric:1

RX packets:4001 errors:0 dropped:0 overruns:0 frame:0

TX packets:3949 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:685237 (669.1 KiB) TX bytes:2853094 (2.7 MiB)

 

А вот - пример нормального:

 

ppp283 Link encap:Point-to-Point Protocol

inet addr:10.1.1.1 P-t-P:10.1.8.4 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 Metric:1

RX packets:23401 errors:0 dropped:0 overruns:0 frame:0

TX packets:23735 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:3628558 (3.4 MiB) TX bytes:19249030 (18.3 MiB)

 

Заранее спасибо!

Share this post


Link to post
Share on other sites

Не получается кроном - вешайте непрерывный процесс который будет крутиться постоянно.

pppd из сырцов собирали?

Share this post


Link to post
Share on other sites
Не получается кроном - вешайте непрерывный процесс который будет крутиться постоянно.

pppd из сырцов собирали?

Да, pppoe-server и pppd вручную собраны.

Про непрерывный процесс - интересно, ведь всё, что уже запущено - работает нормально, только я ни разу такого процесса не запускал - как можно это организовать? Вечный while? Можно примерчик небольшой?

Share this post


Link to post
Share on other sites

Кстати ещё в такие моменты появляется куча процессов rename_device... И ifconfig pppX down не всегда срабатывает - то есть если система в висит - то может не сработать. И kill -9 <pid> этого pppd тоже не убивает...

Edited by Andrew85

Share this post


Link to post
Share on other sites
Не получается кроном - вешайте непрерывный процесс который будет крутиться постоянно.

pppd из сырцов собирали?

Да, pppoe-server и pppd вручную собраны.

Про непрерывный процесс - интересно, ведь всё, что уже запущено - работает нормально, только я ни разу такого процесса не запускал - как можно это организовать? Вечный while? Можно примерчик небольшой?

Странно. У меня проблем с сессиями нет. Были года 3-4 назад еще со старым pppd, но там просто были проблемы с закрытием сессий - они бесконечно висели, занимая соединения и адреса, но висели тихо и не бузили.

 

while c ложным утверждением, for cо сбросом счетчика внутри цикла, проверка на существование внешнего файла или процесса - зависит от задачи. Если просто висеть, то while - самое оно.

Share this post


Link to post
Share on other sites

Да наверное не проканает - сейчас как раз час пик часа пик - и если в начале ifconfig down срабатывал, то сейчас уже ни на kill -9 не реагируют такие pppd, ни на ifconfig down :((( Как их можно убивать либо (ещё лучше) не допускать такого умирания?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this