Linuxカーネルプロセス:

Linuxカーネルプロセス:

現在のルールがどれくらい消費しているか知りたいですCPUmemoryiptables

psandを見ようとしましたが、htopカーネルスレッドが表示されてもiptables

私はconntrack以下のモジュール固有の設定を持つモジュールを使用していますxt_recent.ip_pkt_list_tot=1 xt_recent.ip_list_tot=40964096かなり高いと思います。次に、iptables設定で2種類のブロックリストを使用しますBLACKLISTPORTSCAN

-A INPUT  -i eth0 -p icmp             -j ACCEPT
-A INPUT  -i eth0 -s  1.2.3.4/32      -j ACCEPT
-A INPUT  -i eth0 -m  recent --rsource --name BLACKLIST --seconds 14400 --update -j DROP
-A INPUT  -i eth0 -p  tcp  -m tcp --dport 25 -j ACCEPT

-A INPUT  -i eth0 -m  recent   --rsource --name PORTSCAN --seconds 3600 --update -j DROP
-A INPUT -i eth0  -p  udp  -m udp --dport 5060 -j ACCEPT
-A INPUT -i eth0  -p  tcp  -m tcp --dport 5061 -j ACCEPT
-A INPUT -i eth0  -p  udp  -m udp --dport 5062:5100 -j ACCEPT

-A INPUT  -i eth0 -m  conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT  -i eth0 -m  recent  --rsource --name PORTSCAN --set -j DROP

-A INPUT  -i eth0 -j DROP
-A INPUT  -j DROP

私のサーバーにネットワークの問題があり、私のiptablesルールが機能しているようです。たとえば、

  • 私のssh会議は引き続きキャンセルされます。
  • Pingはパケット損失率が0.2%であると報告します。
  • 許可されたポートに接続すると、つまりプロジェクトが多い場合は空の場合5060よりも時間がかかります。PORTSCAN

  • この問題を解決するための最良の方法は何ですか?

  • iptablesルールをいくつか最適化できますか?
  • 私のCPU使用量をどのように確認しますかiptables

ベストアンサー1

Linuxカーネルプロセス:

多くのカーネル機能(たとえば、Iptables)は、カーネルレベルでkworkerジョブとして扱われ、タスクマネージャ(topなど)に表示されます。説明で説明したように、ルールがロードされた場合とロードされていない場合の合計リソース使用量を比較して、CPUとメモリ使用量を計算できますiptablesipsetルールで使用していなくてもすでにメモリを消費していることに注意してください。

コボック特に、割り込み、タイマー、I/O などがある場合、カーネルの実際の処理の大部分を実行するカーネルワーカースレッドのプレースホルダプロセスです。これは通常、実行中のプロセスに割り当てられている「システム」時間の大部分に対応します。何らかの方法でシステムから安全に削除できるわけではなく、デスクトップアプリケーションとはまったく関係ありません(プログラムがシステムコールを実行してカーネルがこれを行う必要がある場合を除く)。また、kworkerLinuxカーネルプロセスが「タスク」(システムコール処理)を実行していることを意味します。プロセスリストには複数のプロセスがあります。kworker/0:1最初のCPUコアに1つ、kworker/1:12番目のCPUコアに1つなどがあります。すべてのカーネルプロセスは、次のサブプロセスで始まります。カーネル空間のプロセス。

親プロセス:プロセスIDはkthreadd2で、このカーネルワーカープロセスは次のようにリストできます。

pstree 2 -l -p 
# or
ps --ppid 2 -u 
# or
ps --ppid 2 -o pid,user,%mem,command,time,etime,cpu,pcpu,nice,pcpu,vsz 

最後に、bash + cronスクリプトと一緒に使用して変更を観察できます。または、直接タイミング解析に()をperf使用することもできます。apt-get install linux-tools-common linux-tools-3.11.0-15-generic

# Record 10 seconds of backtraces on all your CPUs:
sudo perf record -g -a sleep 10

# Analyse your recording:
sudo perf report

次のコマンドを使用して呼び出しグラフを見つけます。そしてEnter


リンク:12サム456

おすすめ記事