ugenk Posted January 18, 2010 Posted January 18, 2010 собрал 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) Вставить ник Quote
nuclearcat Posted January 29, 2010 Posted January 29, 2010 32bit ядро или 64bit? Хотя у меня 3к+ интерфейсов на 32бит без проблем Вставить ник Quote
Justas Posted June 17, 2010 Posted June 17, 2010 (edited) Почти аналогичная проблема, но с 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 June 17, 2010 by Justas Вставить ник Quote
Justas Posted August 20, 2010 Posted August 20, 2010 Всё еще актуально :( Сменил ядро на 2.6.33 - проблема не ушла. Уже все глаза просмотрел - не знаю, че ему надо. Памяти хватает - 2ГБ оперативной и 2ГБ своп, занято 40%. Поднимает не более 751 интерфейса. Гугл молчит. Вставить ник Quote
ThreeDHead Posted August 20, 2010 Posted August 20, 2010 (edited) Памяти точно хватает? Что за память? Тестировали её? Ядро проца в полку или еще большой запас есть? ОС паникует при этом или только pppd ругается? пысы: вот у меня на малом сервере, поднято 300 pppoe интерфейсов, занято 9% от 12 гиг, это к вопросу о том что её вам хватает. Edited August 20, 2010 by ThreeDHead Вставить ник Quote
Justas Posted August 20, 2010 Posted August 20, 2010 Памяти точно хватает. Сервер INPRO, всё оттестировано по 5 раз. Процессоры загружены на 30% максимум. Ядро не паникует, ругается только pptp. Использую accel-pptp, возможно проблема в нем, потому как на второй подобной машине (однако там ядро 2.6.20) с родным pptp проблемы не возникает. Ща попробую отписать в ветку форума accel-pptp еще... Вставить ник Quote
ThreeDHead Posted August 20, 2010 Posted August 20, 2010 А чего бы не попробовать наисвежайшее ядро собрать? Вставить ник Quote
nuclearcat Posted August 20, 2010 Posted August 20, 2010 Памяти точно хватает? Что за память? Тестировали её?Ядро проца в полку или еще большой запас есть? ОС паникует при этом или только pppd ругается? пысы: вот у меня на малом сервере, поднято 300 pppoe интерфейсов, занято 9% от 12 гиг, это к вопросу о том что её вам хватает. MASTER_PPPOE_WORLDNET ~ # pppctrl |wc -l2617 clients connected MASTER_PPPOE_WORLDNET ~ # cat /proc/meminfo MemTotal: 8213996 kB MemFree: 7099976 kB Причем мег 200 - система в ramfs Вставить ник Quote
Ivan Rostovikov Posted August 21, 2010 Posted August 21, 2010 Ядрокот, если не секрет какие у Вас тарифы ? и какие интерфейсы на "MASTER_PPPOE_WORLDNET" ? Вставить ник Quote
nuclearcat Posted August 21, 2010 Posted August 21, 2010 Тарифы до 2х мегабит гигабитные интерфейсы, один e1000e, другой r8169, и скоро могут быть проблемы именно из-за realtek Вставить ник Quote
Justas Posted August 22, 2010 Posted August 22, 2010 Добавил Swap: 5193712k total Наблюдаю. Вставить ник Quote
Justas Posted August 30, 2010 Posted August 30, 2010 Не-а. 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-интерфейсов. Или я ошибаюсь? Вставить ник Quote
Justas Posted August 30, 2010 Posted August 30, 2010 Причем мег 200 - система в ramfs [offtopic] Да, Денис, торжественно заявляю что я вам должен денег и вы не отвертитесь. Люди! Nuclearcat сильно помог мне и отказывается называть свой WM ID для моей благодарности! Ну и как это назвать? [/offtopic] Вставить ник Quote
Justas Posted October 14, 2010 Posted October 14, 2010 Все еще актуально. Уже всё перевернул по поиску "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) что действительно говорит о неких ограничениях ресурсов системы... Фиг знает. Вставить ник Quote
Justas Posted November 13, 2010 Posted November 13, 2010 Обновил ядро до 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 гб. Отпишусь. Вставить ник Quote
nuclearcat Posted November 13, 2010 Posted November 13, 2010 Justas - если хотите отпишемся вместе в netdev Единственное НО - надо для этого применять ванильное ядро, с kernel.org Вставить ник Quote
kayot Posted November 14, 2010 Posted November 14, 2010 (edited) nuclearcat А можно на ваш sysctl взглянуть? У меня похожая проблема, больше ~1000 pppoe тоннелей не поднимается.. Edited November 14, 2010 by kayot Вставить ник Quote
Justas Posted November 14, 2010 Posted November 14, 2010 Вчера меня осенило посмотреть на память ядра. На стойке у меня несколько серверов. У всех в среднем используемая 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 мбайт памяти ядру. А там уже посмотрим. Вставить ник Quote
Justas Posted November 14, 2010 Posted November 14, 2010 Сейчас 134 соединения. VmallocTotal: 122880 kB VmallocUsed: 23884 kB VmallocChunk: 81908 kB Да, нужно увеличить памяти ядру. Сегодня ночью отправлю машину в ребут. nuclearcat, думаете, Редхатовцы действительно поломали ядро? Ну, если вы поможете поставить ванильное ядро... :-) А еще лучше забить и перейти на Центос 5.5 с его вылизанным до блеска 2.6.18. Вставить ник Quote
kayot Posted November 14, 2010 Posted November 14, 2010 У меня как-то так, сейчас 521 сессия VmallocTotal: 34359738367 kB VmallocUsed: 77296 kB VmallocChunk: 34359578715 kB Вставить ник Quote
Justas Posted November 14, 2010 Posted November 14, 2010 У меня как-то так, сейчас 521 сессия VmallocTotal: 34359738367 kB VmallocUsed: 77296 kB VmallocChunk: 34359578715 kB Эээ. Вы уверены, что у вас в системе есть 32 терабайта памяти, даже для ядра? Что-то какие-то нереальные цифры. Вставить ник Quote
kayot Posted November 14, 2010 Posted November 14, 2010 Посмотрел на нескольких серверах с федорой/ceontOS и ядром 2.6.3х - везде такая картина :) Мои грабли похоже из-за нетюненого ulimit - pppd не может открыть больше 1024 сокетов, посмотрим после планового ребута. Вставить ник Quote
Jugernault Posted November 14, 2010 Posted November 14, 2010 Посмотрел на нескольких серверах с федорой/ceontOS и ядром 2.6.3х - везде такая картина :) Аналогично... [sva@d10 ~]$ grep Vmalloc /proc/meminfo VmallocTotal: 34359738367 kB VmallocUsed: 289444 kB VmallocChunk: 34357355820 kB Вставить ник 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.