Prozess des Linux-Kernels:

Prozess des Linux-Kernels:

Ich möchte wissen wie viel CPUmeine memoryaktuellen iptablesRegeln verbrauchen.

Ich habe versucht, in psund nachzuschauen htop, habe aber selbst bei angezeigten Kernel-Threads nichts im Zusammenhang mit gefunden iptables.

Ich verwende das conntrackModul mit diesen modulspezifischen Einstellungen: xt_recent.ip_pkt_list_tot=1 xt_recent.ip_list_tot=4096. Ich denke, 4096das ist ziemlich hoch. Und dann verwende ich in meiner iptables-Konfiguration zwei Arten von Blocklisten: BLACKLISTund 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

Ich habe Netzwerkprobleme auf dem Server, bei denen meine iptablesRegeln eine Rolle spielen könnten. Zum Beispiel:

  • Meine sshSitzungen werden ziemlich oft abgebrochen.
  • Ping meldet 0,2 % Paketverlust
  • wenn ich mich über erlaubte Ports verbinde, d. h. 5060es dauert merklich länger, wenn PORTSCANviele Elemente vorhanden sind, als wenn es leer ist

  • Was wäre die beste Möglichkeit, dieses Problem zu beheben?

  • kann ich meine Iptables-Regeln optimieren?
  • Wie kann ich sehen, wie viel meiner CPU-Leistung durch verbraucht wird iptables?

Antwort1

Prozess des Linux-Kernels:

Viele Kernelfunktionen wie Iptables werden auf Kernelebene als Kworker-Aufgaben verarbeitet und sind in Taskmanagern wie top sichtbar. Wie in den Kommentaren erwähnt, können Sie die CPU- und Speichernutzung berechnen, indem Sie die gesamte Ressourcennutzung mit und ohne Laden der iptablesRegeln vergleichen. Beachten Sie, dass ipsetbereits Speicher verbraucht wird, auch wenn Sie ihn nicht in einer Regel verwenden.

K-Arbeiterist ein Platzhalterprozess für Kernel-Arbeitsthreads, die den Großteil der eigentlichen Verarbeitung für den Kernel ausführen, insbesondere in Fällen, in denen Interrupts, Timer, I/O usw. vorhanden sind. Diese entsprechen normalerweise dem Großteil der zugewiesenen „Systemzeit“ für laufende Prozesse. Es ist nichts, was auf irgendeine Weise sicher aus dem System entfernt werden kann, und hat überhaupt nichts mit den Desktop-Anwendungen zu tun (außer wenn diese Programme Systemaufrufe durchführen, die möglicherweise erfordern, dass der Kernel etwas tut). kworkerBedeutet auch, dass ein Linux-Kernel-Prozess „arbeitet“ (Systemaufrufe verarbeitet). Sie können mehrere davon in Ihrer Prozessliste haben: kworker/0:1ist der auf Ihrem ersten CPU-Kern, kworker/1:1der auf Ihrem zweiten usw. Alle Kernel-Prozesse werden als Kinder von gestartetAbonnierenProzess im Kernelbereich.

Übergeordneter Prozess:Die Prozess-ID kthreaddist 2 und diese Kernel-Worker können wie folgt aufgelistet werden:

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 

Letzteres kann mit einem Bash- und Cron-Skript verwendet werden, um Änderungen zu überwachen. Alternativ perfkann für eine direkte zeitgesteuerte Analyse Folgendes verwendet werden: ( 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

Navigieren Sie durch den Anrufgraphen mit,,,Und Enter.


Links:1,2,3,4,5,6.

verwandte Informationen