Могу ли я отслеживать нагрузку на процессор, вызываемую межсетевым экраном IPTABLES?

3

Поскольку IPTABLES - это программный брандмауэр, мне интересно, можно ли записать точную загрузку, которую он вызывает, циклы процессора и т. Д.

В небольшой системе я уверен, что это тривиально. Но как насчет тысяч правил?

Глядя в TOP и PS, это, кажется, ускользает от меня, так что это должен быть компонент уровня ядра?

Можно ли его изолировать и контролировать / регистрировать?

eta: для ясности, в современном linux iptables не является видимым процессом или демоном, поэтому его нельзя увидеть, например, с помощью, ps auxи я затрудняюсь, как иначе изолировать его от ядра

ck_
источник
В sy%in topуказывается процент времени, которое система проводит в режиме ядра, а не в режиме пользователя.
LawrenceC
1
@ultrasawblade - это только начало, но далеко не от точного мониторинга iptables и т. д.
ck_

Ответы:

2

Фактическая обработка правил iptables выполняется в контексте softirq, поэтому изменения si%значения в top(или %softв mpstat) должны дать подсказку о том, какую нагрузку он вызывает. Если вы хотите получить больше информации, вы можете использовать ftraceфункцию tracer (см. Https://www.kernel.org/doc/Documentation/trace/ftrace.txt для получения дополнительной информации), чтобы регистрировать вызовы соответствующих функций ядра и измерять задержку. Однако для этого требуется поддержка в ядре, то есть конкретные параметры конфигурации ядра.

jasal
источник