GFORGX Posted August 22, 2011 Posted August 22, 2011 (edited) Привет всем! Если где обсуждалось уже - ткните со всей жестокостью, не замечал ранее в обсуждениях старых. Есть шейпер на Linux 2.6.32-5, ядро родное Debian, трафик засовывается в разные ifb на основе значения dscp, выставляемого на бордере, классов и фильтров, честно скажу, - дофига: Core-3.AS51997.net:~# tc class show dev ifb0 | wc -l 7109 Core-3.AS51997.net:~# tc class show dev ifb1 | wc -l 7109 Тарифы - 256-1024 Кб/c и 512-2048 Кб/c, 1-4 Мб/c (такого трафика *очень* значительно меньше), классы примерно такого вида: ... class htb 1:2057 parent 1: prio 0 rate 512000bit ceil 2048Kbit burst 1600b cburst 1599b class htb 1:2056 parent 1: prio 0 rate 256000bit ceil 1024Kbit burst 1600b cburst 1599b ... loadavg выглядит просто чудесно даже в ЧНН при ~600 Мб/c в обе стороны суммарно, добился использованием хэш-таблиц и раскидыванием IRQ сетёвок: Core-3.AS51997.net:~# w 21:49:58 up 3:09, 2 users, load average: 0.00, 0.00, 0.00 ... Память - 4GB (в реальности 6GB, но пока что не дошли руки поставить -bigmem ядро). Логично, что при таких тарифах и количестве правил высокое использование памяти вполне ожидаемо, но тут происходит нечто несколько странное - объём использованной памяти просто непрерывно растёт (и не уменьшается, по наблюдениям), независимо от нагрузки трафиком, в любое время суток - а потом начинается стрелялка под названием oom-killer. Ничего из сервисов кроме BIRD с FV (оно там некритично и не особо нужно, но, на мой взгляд, особо наличие/отсутствие полной таблицы на нём никакого значения не играет), но он всего 41 МБ потребляет: BIRD 1.3.1 ready. bird> show memory BIRD memory usage Routing tables: 26 MB Route attributes: 14 MB Protocols: 562 kB Total: 41 MB Буду благодарен советам, как подебажить использование памяти ядром, и, если у кого-то подобное было, опыту решения проблемы. Edited August 22, 2011 by GFORGX Вставить ник Quote
photon Posted August 22, 2011 Posted August 22, 2011 (edited) Откуда такая уверенность в том, что утечки памяти именно из-за HTB? Скорее уж в IFB или BIRD. Надо смотреть расход памяти в top, а не в самом BIRD. Не надо крутить все сервисы на одной машине и усложнять конфигурацию, тогда все будет значительно проще. Edited August 22, 2011 by photon Вставить ник Quote
GFORGX Posted August 23, 2011 Author Posted August 23, 2011 (edited) Откуда такая уверенность в том, что утечки памяти именно из-за HTB? Скорее уж в IFB или BIRD. Надо смотреть расход памяти в top, а не в самом BIRD. Не надо крутить все сервисы на одной машине и усложнять конфигурацию, тогда все будет значительно проще. Расход памяти в top - нули, отсюда и предположения на ядро. Да, как вариант, возможно, IFB. Никакого усложнения конфигурации и "крутить все сервисы на одной машине" в схеме не вижу, сможете показать, где, - тогда и будете говорить, окей? Edited August 23, 2011 by GFORGX Вставить ник Quote
vitalyb Posted August 23, 2011 Posted August 23, 2011 Если архитектура 32битная - может заканчиваться Low память, ее обычно в районе 800М и если сильно много всего понакручивать и поувеличивать - может и кончится. Смотреть можно /proc/meminfo, slabtop Вставить ник Quote
GFORGX Posted August 23, 2011 Author Posted August 23, 2011 Если архитектура 32битная - может заканчиваться Low память, ее обычно в районе 800М и если сильно много всего понакручивать и поувеличивать - может и кончится. Смотреть можно /proc/meminfo, slabtop Спасибо, посмотрю. Да, x86. Ещё попробую проверить ifb - в скрипте, который раз в сутки tc -b делает, попробую релоадить модули ifb и act_mirred. Вставить ник Quote
GFORGX Posted August 24, 2011 Author Posted August 24, 2011 (edited) Почти вся используемая память в meminfo - в Slab. При попытке slabtop или доступа к /proc/slabinfo получаю ругань: Core-3.AS51997.net:~# cat /proc/slabinfo Killed Core-3.AS51997.net:~# Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.952910] Oops: 0000 [#9] SMP Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.953043] last sysfs file: /sys/module/thermal/initstate Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.957265] Process cat (pid: 25312, ti=c534e000 task=f657ea40 task.ti=c534e000) Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.957351] Stack: Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.958739] Call Trace: Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.959546] Code: 0e 89 c7 89 d0 f2 ae 74 05 bf 01 00 00 00 4f 89 f8 5f c3 85 c9 57 89 c7 89 d0 74 05 f2 ae 75 01 4f 89 f8 5f c3 89 c1 89 c8 eb 06 <80> 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 c3 90 55 89 d5 57 56 Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.962039] EIP: [<c113b55c>] strnlen+0x6/0x16 SS:ESP 0068:c534fe48 Message from syslogd@Core-3 at Aug 24 19:25:04 ... kernel:[175141.962183] CR2: 00000000f8989165 На других роутерах и у меня на ноуте чудесно работает... Всё-таки попытаюсь ночью поменять хотя бы версию ядра до того, что в testing. Edited August 24, 2011 by GFORGX Вставить ник Quote
GFORGX Posted August 26, 2011 Author Posted August 26, 2011 (edited) Причина найдена благодаря slabinfo - странное поведение conntrack, пришлось менее вкусно переписать правила на INPUT. Вот только не понятно, почему она проявилась именно в такой комбинации с ifb/htb/ipt_netflow, на апстрим-роутере с тем же ядром conntrack используется в абсолютно аналогичных правилах (на INPUT), жрёт стабильно метров 256 памяти, но не течёт. Edited August 26, 2011 by GFORGX Вставить ник 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.