Ivan Rostovikov Posted September 14, 2008 Posted September 14, 2008 Linux 2.6.18-4-amd64 PPPoE NAS Решил проверить, что грузит проц. # opreport CPU: Core 2, speed 2000 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 CPU_CLK_UNHALT...| samples| %| ------------------ 273404 73.7147 ip_tables 48430 13.0576 vmlinux 12671 3.4163 e1000 9535 2.5708 ip_conntrack 8032 2.1656 bnx2 6567 1.7706 pppoe 5378 1.4500 ppp_generic 1358 0.3661 oprofiled 864 0.2330 libc-2.3.6.so 665 0.1793 iptable_nat 538 0.1451 libzebra.so.0.0.0 ... Вопрос: я правильно понимаю, что именно iptables корень проблемы ? Ведь в отчетах oprofile указано кол-во обращений к модулю, а не сама по себе "загрузка". Количество обращений к этому модулю пропорционально создаваемой загрузке ? Или надо копать глубже ? Вставить ник Quote
nuclearcat Posted September 14, 2008 Posted September 14, 2008 Да, именно iptables грузит железку. Можно при особом желании даже посмотреть по функциям причину (opannotate / opreport -l /iptables ...) - но в этом особого смысла нет. Это не количество обращений, а данные с performance counters, т.е. именно кто использовал "сколько" CPU. oprofile не всегда истина в последней инстанции, но мой опыт показал - что почти всегда правильно, и лишь иногда чуть привирает (при перегрузе). Вставить ник Quote
Ivan Rostovikov Posted September 14, 2008 Author Posted September 14, 2008 (edited) iptebles содержит примерно 2600 правил (на 99% это запрещающие правила drop). Неужели это слишком много ? Попробовал сбросить все таблицы. Сразу полегчало. Много думаю... Может вместе с новым ядром поменять и iptables ? Edited September 14, 2008 by Ivan Rostovikov Вставить ник Quote
nuclearcat Posted September 14, 2008 Posted September 14, 2008 Не поможет, нужно структуризовать правила и обеспечить пакетам прохождение минимального количества правил. Допустим у вас есть правила на несколько подсетей, на каждую подсеть C штук 100. Можно так iptables -A INPUT -d 3.4.5.0/24 -j INPUT-NET-3.4.5 iptables -A INPUT-NET-3.4.5 -d 3.4.5.1/32 ... -j DROP iptables -A INPUT-NET-3.4.5 -d 3.4.5.2/32 ... -j DROP Можно еще подразбить - и так, чтоб цепочка была минимальной для большинства пакетов. Вставить ник Quote
martini Posted September 15, 2008 Posted September 15, 2008 не вижу проблем... заюзай IPSET и загрузка упадет до 5 процентов Вставить ник Quote
DemYaN Posted September 15, 2008 Posted September 15, 2008 А есть ли возможность как-то из vmlinuz получить vmlinux? Для Debian это актуально Вставить ник Quote
nuclearcat Posted September 15, 2008 Posted September 15, 2008 Не уверен, но может быть Это Вставить ник Quote
DemYaN Posted September 16, 2008 Posted September 16, 2008 К сожалению не помогло :( #dd if=vmlinuz-2.6.18-4-686 skip=`./binoffset vmlinuz-2.6.18-4-686 0x1f 0x8b 0x08 0x00` bs=1|gzip -d > vmlinux-2.6.18-4-686 filesize: 1261216 number of pattern matches = 1 20912 1240304+0 записей считано 1240304+0 записей написано скопировано 1240304 байта (1,2 MB), 7,66809 секунд, 162 kB/s # # opcontrol --setup --vmlinux=vmlinux-2.6.18-4-686 The specified file vmlinux-2.6.18-4-686 does not seem to be valid Make sure you are using the non-compressed image file (e.g. vmlinux not vmlinuz) Вставить ник 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.