
我想知道我目前的規則消耗了CPU
多少。memory
iptables
我嘗試查看ps
和htop
,但即使顯示了內核線程,也沒有看到任何與iptables
.
我正在使用conntrack
具有以下特定於模組的設定的模組:xt_recent.ip_pkt_list_tot=1
xt_recent.ip_list_tot=4096
。我認為4096
是相當高的。然後,在我的 iptables 配置中,我使用兩種阻止清單:BLACKLIST
和PORTSCAN
。
-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 和記憶體使用情況iptables
。請注意,ipset
即使您不在規則中使用它,它也已經消耗了記憶體。
柯沃克是核心工作執行緒的佔位進程,它執行核心的大部分實際處理,特別是在存在中斷、計時器、I/O 等的情況下。到正在運行的進程。它不是可以以任何方式從系統中安全刪除的東西,並且與桌面應用程式完全無關(除非這些程式進行系統調用,這可能需要核心執行某些操作)。也kworker
意味著 Linux 核心進程正在做「工作」(處理系統呼叫)。您的進程清單中可以有多個:kworker/0:1
是第一個 CPU 核心上的進程,kworker/1:1
第二個 CPU 核心上的一個,等等。執行緒核心空間上的行程。
父進程:進程 ID 為kthreadd
2,可以透過以下方式列出該核心工作進程:
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。