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

linux, pppoe и новые ядра

собрал 2.6.32.2, тестирую pppoe.

выдает вот такое в dmesg, и не получается поднять больше 1488 клиентов..

 

[ 1279.222685] PERCPU: allocation failed, size=2048 align=8, failed to allocate new chunk

[ 1279.222762] Pid: 30248, comm: pppd Not tainted 2.6.32.2 #1

[ 1279.222818] Call Trace:

[ 1279.222873] [<c10b69e8>] ? pcpu_alloc+0x735/0x7c5

[ 1279.222931] [<c1037b2a>] ? irq_exit+0x36/0x58

[ 1279.222987] [<c1014a48>] ? smp_apic_timer_interrupt+0x6c/0x76

[ 1279.223046] [<c120a221>] ? snmp_mib_init+0x1a/0x51

[ 1279.223108] [<f94e8dbf>] ? ipv6_add_dev+0x147/0x2c6 [ipv6]

[ 1279.223169] [<f94e9488>] ? addrconf_notify+0x4f/0x74f [ipv6]

[ 1279.223227] [<c12277ca>] ? register_net_sysctl_table+0x37/0x41

[ 1279.223285] [<c1208846>] ? __devinet_sysctl_register+0xb6/0xe1

[ 1279.223343] [<c12088a7>] ? devinet_sysctl_register+0x36/0x3b

[ 1279.223401] [<c120d8a1>] ? ip_mc_init_dev+0x6a/0x7e

[ 1279.223457] [<c120898b>] ? inetdev_init+0xdf/0x10f

[ 1279.223533] [<c1208a07>] ? inetdev_event+0x4c/0x38b

[ 1279.223590] [<c11a455a>] ? get_device+0x10/0x14

[ 1279.223645] [<c1227a4e>] ? klist_node_init+0x3b/0x3e

[ 1279.223702] [<c1227ad4>] ? klist_add_tail+0x16/0x2f

[ 1279.223758] [<c1049c8e>] ? notifier_call_chain+0x2a/0x47

[ 1279.223815] [<c1049d17>] ? raw_notifier_call_chain+0x9/0xc

[ 1279.223873] [<c11cda9e>] ? register_netdevice+0x2f4/0x33d

[ 1279.223930] [<c11cdb16>] ? register_netdev+0x2f/0x3b

[ 1279.223990] [<f89c6641>] ? ppp_ioctl+0x28e/0xb97 [ppp_generic]

[ 1279.224048] [<c10b6ee7>] ? __dentry_open+0x176/0x246

[ 1279.224104] [<c10ba9e3>] ? chrdev_open+0x0/0x16b

[ 1279.224160] [<c10c221f>] ? do_filp_open+0x457/0x85d

[ 1279.224217] [<c11c00ac>] ? sys_connect+0x76/0xa2

[ 1279.224273] [<f89d3185>] ? pppox_ioctl+0x84/0x8d [pppox]

[ 1279.224330] [<f89c63b3>] ? ppp_ioctl+0x0/0xb97 [ppp_generic]

[ 1279.224388] [<c10c31bf>] ? vfs_ioctl+0x1c/0x5f

[ 1279.224443] [<c10c3704>] ? do_vfs_ioctl+0x45b/0x496

[ 1279.224499] [<c10b6b05>] ? fd_install+0x1e/0x3c

[ 1279.224554] [<c10c2d15>] ? do_fcntl+0x216/0x387

[ 1279.224613] [<c10b6d07>] ? do_sys_open+0xd4/0xdf

[ 1279.224668] [<c10c3780>] ? sys_ioctl+0x41/0x58

[ 1279.224724] [<c10031d4>] ? sysenter_do_call+0x12/0x28

[ 1279.258360] PPP: couldn't register device ppp1488 (-12)

...

[ 1282.073824] PERCPU: limit reached, disable warning

[ 1282.139753] PPP: couldn't register device ppp1488 (-12)

[ 1282.223481] PPP: couldn't register device ppp1488 (-12)

[ 1282.303684] PPP: couldn't register device ppp1488 (-12)

[ 1282.431658] PPP: couldn't register device ppp1488 (-12)

 

Share this post


Link to post
Share on other sites

а памяти хватает?

Share this post


Link to post
Share on other sites

Почти аналогичная проблема, но с pptp. 32-х битная Федора 12, kernel-PAE-2.6.32.11-99.fc12.i686.

 

Jun 17 21:56:44 helium3 pptpd[5262]: CTRL: Client 192.168.22.171 control connection started
Jun 17 21:56:44 helium3 pptpd[5262]: CTRL: Starting call (launching pppd, opening GRE)
Jun 17 21:56:44 helium3 pppd[5263]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Jun 17 21:56:44 helium3 pptp[5263]: Plugin pptp.so loaded.
Jun 17 21:56:44 helium3 pptp[5263]: PPTP plugin version 0.8.4 compiled for pppd-2.4.3, linux-2.6.32.11-99.fc12.i686.PAE
Jun 17 21:56:44 helium3 pptp[5263]: pppd 2.4.3 started by root, uid 0
Jun 17 21:56:44 helium3 pptp[5263]: Couldn't create new ppp unit: Cannot allocate memory
Jun 17 21:56:44 helium3 pptp[5263]: Exit.
Jun 17 21:56:44 helium3 kernel: PPP: couldn't register device ppp751 (-12)
Jun 17 21:56:44 helium3 pptpd[5262]: CTRL: Client pppd TERM sending
Jun 17 21:56:44 helium3 pptpd[5262]: CTRL: Client pppd finish wait
Jun 17 21:56:44 helium3 pptpd[5262]: CTRL: Client 192.168.22.171 control connection finished

 

pptp не может выделить память, а ядро не может зарегистрировать интерфейс.

 

Сталкивался ли кто?

Edited by Justas

Share this post


Link to post
Share on other sites

Всё еще актуально :( Сменил ядро на 2.6.33 - проблема не ушла. Уже все глаза просмотрел - не знаю, че ему надо. Памяти хватает - 2ГБ оперативной и 2ГБ своп, занято 40%. Поднимает не более 751 интерфейса. Гугл молчит.

Share this post


Link to post
Share on other sites

Памяти точно хватает? Что за память? Тестировали её?

Ядро проца в полку или еще большой запас есть?

ОС паникует при этом или только pppd ругается?

 

пысы: вот у меня на малом сервере, поднято 300 pppoe интерфейсов, занято 9% от 12 гиг, это к вопросу о том что её вам хватает.

Edited by ThreeDHead

Share this post


Link to post
Share on other sites

Памяти точно хватает. Сервер INPRO, всё оттестировано по 5 раз. Процессоры загружены на 30% максимум. Ядро не паникует, ругается только pptp. Использую accel-pptp, возможно проблема в нем, потому как на второй подобной машине (однако там ядро 2.6.20) с родным pptp проблемы не возникает. Ща попробую отписать в ветку форума accel-pptp еще...

Share this post


Link to post
Share on other sites
Памяти точно хватает? Что за память? Тестировали её?

Ядро проца в полку или еще большой запас есть?

ОС паникует при этом или только pppd ругается?

 

пысы: вот у меня на малом сервере, поднято 300 pppoe интерфейсов, занято 9% от 12 гиг, это к вопросу о том что её вам хватает.

MASTER_PPPOE_WORLDNET ~ # pppctrl |wc -l

2617 clients connected

MASTER_PPPOE_WORLDNET ~ # cat /proc/meminfo

MemTotal: 8213996 kB

MemFree: 7099976 kB

 

Причем мег 200 - система в ramfs

Share this post


Link to post
Share on other sites

Тарифы до 2х мегабит

гигабитные интерфейсы, один e1000e, другой r8169, и скоро могут быть проблемы именно из-за realtek

Share this post


Link to post
Share on other sites

Не-а.

 

Aug 30 21:42:06 helium3 pptp[22359]: Couldn't create new ppp unit: Cannot allocate memory

Aug 30 21:42:06 helium3 kernel: PPP: couldn't register device ppp752 (-12)

 

:(

 

Вроде из ядер давно уже убрали ограничения на количество ppp-интерфейсов. Или я ошибаюсь?

Share this post


Link to post
Share on other sites
Причем мег 200 - система в ramfs

[offtopic]

 

Да, Денис, торжественно заявляю что я вам должен денег и вы не отвертитесь. Люди! Nuclearcat сильно помог мне и отказывается называть свой WM ID для моей благодарности! Ну и как это назвать?

 

[/offtopic]

Share this post


Link to post
Share on other sites

Все еще актуально. Уже всё перевернул по поиску "cannot allocate memory", как правило, такая ошибка возникает при багах в системе/приложении.

 

Еще по ulimit -a значение max user processes (-u) было 1024, поставил ulimit -u 32764, но проблему это не решает.

 

При этом максимальное значение количества ppp-интерфейсов немного может меняться:

 

Oct 13 21:03:46 helium3 kernel: PPP: couldn't register device ppp767 (-12)

 

что действительно говорит о неких ограничениях ресурсов системы... Фиг знает.

Share this post


Link to post
Share on other sites

Обновил ядро до 2.6.35.6.

 

Проблема не ушла. Кол-во поднятых интерфейсов увеличилось до 771 -

 

Nov 13 18:20:32 helium3 kernel: [58076.883644] PPP: couldn't register device ppp772 (-12)

 

В dmesg

 

[58076.869971] PERCPU: allocation failed, size=2048 align=4, failed to allocate new chunk
[58076.869978] Pid: 21428, comm: pppd Not tainted 2.6.35.6-48.fc12.i686.PAE #1
[58076.869980] Call Trace:
[58076.869991]  [<c07b8b0d>] ? printk+0x25/0x30
[58076.869997]  [<c04dcd61>] pcpu_alloc+0x697/0x6ff
[58076.870004]  [<c04da339>] ? __kmalloc_track_caller+0x101/0x110
[58076.870012]  [<c0730966>] ? neigh_parms_alloc+0x55/0xcb
[58076.870488]  [<c0445172>] ? local_bh_enable_ip+0xd/0xf
[58076.870492]  [<c04dcdec>] __alloc_percpu+0xf/0x13
[58076.870497]  [<c0775cf7>] snmp_mib_init+0x22/0x5a
[58076.870516]  [<f7c34fd7>] ipv6_add_dev+0x177/0x31b [ipv6]
[58076.870571]  [<f7c356bd>] addrconf_notify+0x55/0x6c5 [ipv6]
[58076.870583]  [<c07795e7>] ? ip_mc_init_dev+0x72/0x89
[58076.870586]  [<c0774a19>] ? inetdev_init+0xfe/0x136
[58076.870592]  [<c073a2c3>] ? dropmon_net_event+0x32/0x117
[58076.870596]  [<c073a31d>] ? dropmon_net_event+0x8c/0x117
[58076.871598]  [<c07bd6b2>] notifier_call_chain+0x2b/0x4d
[58076.871605]  [<c0458639>] raw_notifier_call_chain+0x11/0x13
[58076.871615]  [<c072a6b2>] call_netdevice_notifiers+0x41/0x48
[58076.871632]  [<c072c378>] register_netdevice+0x256/0x2b3
[58076.871635]  [<c072c40c>] register_netdev+0x37/0x46
[58076.871642]  [<c05be271>] ? sprintf+0x17/0x19
[58076.871647]  [<f7d6773f>] ppp_ioctl+0x289/0xb8c [ppp_generic]
[58076.871653]  [<c04ea9a0>] ? path_put+0x1a/0x1d
[58076.871657]  [<c04ed7c9>] ? do_filp_open+0x3d6/0x43a
[58076.871661]  [<c04ee44d>] vfs_ioctl+0x2c/0x96
[58076.871665]  [<f7d674b6>] ? ppp_ioctl+0x0/0xb8c [ppp_generic]
[58076.871668]  [<c04ee9c3>] do_vfs_ioctl+0x468/0x49c
[58076.871677]  [<c04e1e8d>] ? fd_install+0x23/0x41
[58076.871683]  [<c047ec07>] ? audit_putname+0x2f/0x31
[58076.871686]  [<c04ea9a0>] ? path_put+0x1a/0x1d
[58076.871690]  [<c04eea3d>] sys_ioctl+0x46/0x66
[58076.871695]  [<c0408c9f>] sysenter_do_call+0x12/0x28
[58076.871701]  [<c07b0000>] ? pci_ni8420_exit+0x72/0xa0
[58076.883644] PPP: couldn't register device ppp772 (-12)
[58127.216708] PERCPU: allocation failed, size=2048 align=4, failed to allocate new chunk
[58127.216713] Pid: 21632, comm: pppd Not tainted 2.6.35.6-48.fc12.i686.PAE #1
[58127.216716] Call Trace:
[58127.216738]  [<c07b8b0d>] ? printk+0x25/0x30
[58127.216744]  [<c04dcd61>] pcpu_alloc+0x697/0x6ff
[58127.216751]  [<c04da339>] ? __kmalloc_track_caller+0x101/0x110
[58127.216759]  [<c0730966>] ? neigh_parms_alloc+0x55/0xcb
[58127.216765]  [<c0445172>] ? local_bh_enable_ip+0xd/0xf
[58127.216768]  [<c04dcdec>] __alloc_percpu+0xf/0x13
[58127.216774]  [<c0775cf7>] snmp_mib_init+0x22/0x5a
[58127.216793]  [<f7c34fd7>] ipv6_add_dev+0x177/0x31b [ipv6]
[58127.216806]  [<f7c356bd>] addrconf_notify+0x55/0x6c5 [ipv6]
[58127.216810]  [<c07795e7>] ? ip_mc_init_dev+0x72/0x89
[58127.216813]  [<c0774a19>] ? inetdev_init+0xfe/0x136
[58127.216820]  [<c073a2c3>] ? dropmon_net_event+0x32/0x117
[58127.216824]  [<c073a31d>] ? dropmon_net_event+0x8c/0x117
[58127.216829]  [<c07bd6b2>] notifier_call_chain+0x2b/0x4d
[58127.216833]  [<c0458639>] raw_notifier_call_chain+0x11/0x13
[58127.216837]  [<c072a6b2>] call_netdevice_notifiers+0x41/0x48
[58127.216841]  [<c072c378>] register_netdevice+0x256/0x2b3
[58127.216844]  [<c072c40c>] register_netdev+0x37/0x46
[58127.216850]  [<c05be271>] ? sprintf+0x17/0x19
[58127.216855]  [<f7d6773f>] ppp_ioctl+0x289/0xb8c [ppp_generic]
[58127.216861]  [<c04ea9a0>] ? path_put+0x1a/0x1d
[58127.216864]  [<c04ed7c9>] ? do_filp_open+0x3d6/0x43a
[58127.216870]  [<c071c271>] ? sock_ioctl+0x1c7/0x1e9
[58127.216874]  [<c04ee44d>] vfs_ioctl+0x2c/0x96
[58127.216878]  [<f7d674b6>] ? ppp_ioctl+0x0/0xb8c [ppp_generic]
[58127.216881]  [<c04ee9c3>] do_vfs_ioctl+0x468/0x49c
[58127.216886]  [<c04e1e8d>] ? fd_install+0x23/0x41
[58127.216892]  [<c047ec07>] ? audit_putname+0x2f/0x31
[58127.216898]  [<c04ea9a0>] ? path_put+0x1a/0x1d
[58127.216902]  [<c04eea3d>] sys_ioctl+0x46/0x66
[58127.216907]  [<c0408c9f>] sysenter_do_call+0x12/0x28
[58127.216909] PERCPU: limit reached, disable warning
[58127.235951] PPP: couldn't register device ppp772 (-12)
[58132.169797] PPP: couldn't register device ppp772 (-12)
[58132.514361] PPP: couldn't register device ppp772 (-12)
[58133.275402] PPP: couldn't register device ppp772 (-12)

 

Проблема не ядерная. На следующей неделе увеличу оперативной памяти с 2 до 8 гб. Отпишусь.

Share this post


Link to post
Share on other sites

Justas - если хотите отпишемся вместе в netdev

Единственное НО - надо для этого применять ванильное ядро, с kernel.org

Share this post


Link to post
Share on other sites

nuclearcat

А можно на ваш sysctl взглянуть? У меня похожая проблема, больше ~1000 pppoe тоннелей не поднимается..

Edited by kayot

Share this post


Link to post
Share on other sites

Вчера меня осенило посмотреть на память ядра. На стойке у меня несколько серверов. У всех в среднем используемая vmalloc

 

[root@test3 tmp]# grep Vmalloc /proc/meminfo
VmallocTotal:     122880 kB
VmallocUsed:        4172 kB
VmallocChunk:     113748 kB

 

То есть в районе от 2 до 5 мегабайт.

 

На сервере с pppd:

 

VmallocTotal:     122880 kB
VmallocUsed:      109900 kB
VmallocChunk:       2040 kB

 

То есть что-то забирает память ядра под свои нужды. xebподсказал, что да, pppd при поднятии интерфейса использует память ядра. У меня стоял ppp-2.4.3, сегодня обновил до 2.4.5, но и с ним в данный момент при 83 соединениях уже

 

VmallocTotal:     122880 kB
VmallocUsed:       15424 kB
VmallocChunk:      90100 kB

 

Дождусь очередного переполнения памяти и увеличу до 256 мбайт памяти ядру. А там уже посмотрим.

Share this post


Link to post
Share on other sites

Сейчас 134 соединения.

 

VmallocTotal:     122880 kB
VmallocUsed:       23884 kB
VmallocChunk:      81908 kB

 

Да, нужно увеличить памяти ядру. Сегодня ночью отправлю машину в ребут.

 

nuclearcat, думаете, Редхатовцы действительно поломали ядро? Ну, если вы поможете поставить ванильное ядро... :-) А еще лучше забить и перейти на Центос 5.5 с его вылизанным до блеска 2.6.18.

Share this post


Link to post
Share on other sites

У меня как-то так, сейчас 521 сессия

VmallocTotal:   34359738367 kB
VmallocUsed:       77296 kB
VmallocChunk:   34359578715 kB

Share this post


Link to post
Share on other sites
У меня как-то так, сейчас 521 сессия

VmallocTotal:   34359738367 kB
VmallocUsed:       77296 kB
VmallocChunk:   34359578715 kB

 

Эээ. Вы уверены, что у вас в системе есть 32 терабайта памяти, даже для ядра? Что-то какие-то нереальные цифры.

Share this post


Link to post
Share on other sites

Посмотрел на нескольких серверах с федорой/ceontOS и ядром 2.6.3х - везде такая картина :)

 

Мои грабли похоже из-за нетюненого ulimit - pppd не может открыть больше 1024 сокетов, посмотрим после планового ребута.

Share this post


Link to post
Share on other sites
Посмотрел на нескольких серверах с федорой/ceontOS и ядром 2.6.3х - везде такая картина :)

Аналогично...

 

[sva@d10 ~]$ grep Vmalloc /proc/meminfo

VmallocTotal: 34359738367 kB

VmallocUsed: 289444 kB

VmallocChunk: 34357355820 kB

 

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