web-dev-qa-db-ja.com

IPTABLESファイアウォールが引き起こしているCPU負荷を追跡できますか?

IPTABLESはソフトウェアベースのファイアウォールであるため、発生している正確な負荷、CPUサイクルなどをログに記録できるかどうか疑問に思っています。

小さなシステムでは、それは些細なことだと確信しています。しかし、何千ものルールはどうですか?

TOPとPSを見ると、これは私にはわかりにくいようです。カーネルレベルのコンポーネントである必要がありますか?

分離して監視/ログに記録できますか?

eta:わかりやすくするために、最近のLinuxでは、iptablesは表示可能なプロセスまたはデーモンではないため、たとえばps auxでは表示できません。それ以外の場合はカーネルから分離する方法の損失

3
ck_

Iptablesルールの実際の処理はsoftirqコンテキストで行われるため、si%top(または%soft in mpstat)は、それが引き起こす負荷の量についてのヒントを提供する必要があります。詳細が必要な場合は、ftrace関数トレーサーを使用できます(詳細については、 https://www.kernel.org/doc/Documentation/trace/ftrace.txt を参照)。それぞれのカーネル関数への呼び出しをログに記録し、レイテンシーを測定します。ただし、これにはカーネルでのサポート、つまり特定のカーネル構成オプションが必要です。

3
jasal