Proceso del kernel de Linux:

Proceso del kernel de Linux:

Me gustaría saber cuánto CPUconsumen mis reglas memoryactuales .iptables

Intenté buscar en psy htop, pero incluso con los subprocesos del kernel mostrados y no vi nada relacionado con iptables.

Estoy usando el conntrackmódulo con estas configuraciones específicas del módulo: xt_recent.ip_pkt_list_tot=1 xt_recent.ip_list_tot=4096. Creo que 4096es bastante alto. Y luego, en mi configuración de iptables, estoy usando dos tipos de listas de bloqueo: BLACKLISTy 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

Tengo problemas de red en el servidor, donde sospecho que mis iptablesreglas podrían influir. Por ejemplo:

  • Mis sshsesiones se cancelan con bastante frecuencia.
  • Ping informa una pérdida de paquetes del 0,2%
  • cuando me conecto en puertos permitidos, es decir, 5060toma mucho más tiempo cuando PORTSCANhay muchos elementos, en comparación con cuando está vacío

  • ¿Cuál sería la mejor manera de solucionar este problema?

  • ¿Hay alguna optimización que pueda hacer a mis reglas de iptables?
  • ¿Cómo puedo ver cuánta CPU está consumiendo iptables?

Respuesta1

Proceso del kernel de Linux:

Muchas funciones del Kernel, como Iptables, se procesan en el nivel del Kernel como tareas de kworker y son visibles en administradores de tareas como top. Como se mencionó en los comentarios, puede calcular el uso de CPU y memoria comparando el uso total de recursos con y sin cargar las iptablesreglas. Tenga en cuenta que ipsetya consume memoria incluso si no la usa en una regla.

trabajadores un proceso de marcador de posición para los subprocesos de trabajo del kernel, que realizan la mayor parte del procesamiento real del kernel, especialmente en los casos en los que hay interrupciones, temporizadores, E/S, etc. Estos normalmente corresponden a la gran mayoría de cualquier tiempo asignado al "sistema". a procesos en ejecución. No es algo que se pueda eliminar de forma segura del sistema de ninguna manera y no tiene ninguna relación con las aplicaciones de escritorio (excepto si estos programas realizan llamadas al sistema, lo que puede requerir que el kernel haga algo). También kworkersignifica un proceso del kernel de Linux que realiza "trabajo" (procesando llamadas al sistema). Puede tener varios de ellos en su lista de procesos: kworker/0:1el que está en el primer núcleo de su CPU, kworker/1:1el que está en el segundo, etc. Todos los procesos del Kernel se inician como hijos dehiloproceso en el espacio del Kernel.

Proceso padre:El ID del proceso kthreaddes 2 y los trabajadores de este kernel se pueden enumerar con:

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 

Este último se puede usar con un script bash + cron para observar los cambios... alternativamente, para un análisis cronometrado directo, perfse puede usar ( 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

Navega por el gráfico de llamadas con,,,y Enter.


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

información relacionada