Поскольку IPTABLES - это программный брандмауэр, мне интересно, можно ли записать точную загрузку, которую он вызывает, циклы процессора и т. Д.
В небольшой системе я уверен, что это тривиально. Но как насчет тысяч правил?
Глядя в TOP и PS, это, кажется, ускользает от меня, так что это должен быть компонент уровня ядра?
Можно ли его изолировать и контролировать / регистрировать?
eta: для ясности, в современном linux iptables не является видимым процессом или демоном, поэтому его нельзя увидеть, например, с помощью, ps aux
и я затрудняюсь, как иначе изолировать его от ядра
sy%
intop
указывается процент времени, которое система проводит в режиме ядра, а не в режиме пользователя.Ответы:
Фактическая обработка правил iptables выполняется в контексте softirq, поэтому изменения
si%
значения вtop
(или%soft
вmpstat
) должны дать подсказку о том, какую нагрузку он вызывает. Если вы хотите получить больше информации, вы можете использоватьftrace
функцию tracer (см. Https://www.kernel.org/doc/Documentation/trace/ftrace.txt для получения дополнительной информации), чтобы регистрировать вызовы соответствующих функций ядра и измерять задержку. Однако для этого требуется поддержка в ядре, то есть конкретные параметры конфигурации ядра.источник