Processo do Kernel Linux:

Processo do Kernel Linux:

Gostaria de saber quanto CPU/ memoryminhas regras atuais iptablesconsomem.

Eu tentei procurar em pse htop, mas mesmo com os threads do kernel exibidos e não vi nada relacionado a iptables.

Estou usando o conntrackmódulo com estas configurações específicas do módulo: xt_recent.ip_pkt_list_tot=1 xt_recent.ip_list_tot=4096. Eu acho que 4096é bem alto. E então, na minha configuração do iptables, estou usando dois tipos de listas de bloqueio: BLACKLISTe 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

Estou tendo problemas de rede no servidor, onde suspeito que minhas iptablesregras possam desempenhar um papel. Por exemplo:

  • Minhas sshsessões estão sendo interrompidas com bastante frequência.
  • Ping relata perda de pacotes de 0,2%
  • quando estou conectando em portas permitidas, ou seja, 5060leva muito mais tempo quando PORTSCANtem muitos itens, em comparação quando está vazio

  • Qual seria a melhor maneira de solucionar esse problema?

  • há alguma otimização que eu possa fazer nas minhas regras do iptables?
  • Como posso ver quanto da minha CPU está sendo consumida iptables?

Responder1

Processo do Kernel Linux:

Muitas funções do Kernel, como Iptables, são processadas no nível do Kernel como tarefas kworker e são visíveis em gerenciadores de tarefas como top. Conforme mencionado nos comentários, você pode calcular o uso de CPU e memória comparando o uso total de recursos com e sem carregar as iptablesregras. Note que ipsetjá consome memória mesmo que você não utilize em uma regra.

Trabalhadoré um processo de espaço reservado para threads de trabalho do kernel, que executa a maior parte do processamento real para o kernel, especialmente em casos onde há interrupções, temporizadores, E/S, etc. Estes normalmente correspondem à grande maioria de qualquer tempo de "sistema" alocado para executar processos. Não é algo que possa ser removido com segurança do sistema de qualquer forma e não tem nenhuma relação com os aplicativos de desktop (exceto se esses programas fizerem chamadas de sistema, o que pode exigir que o kernel faça alguma coisa). Também kworkersignifica um processo do kernel Linux fazendo "trabalho" (processando chamadas do sistema). Você pode ter vários deles em sua lista de processos: kworker/0:1o do primeiro núcleo da CPU, kworker/1:1o do segundo, etc. Todos os processos do Kernel são iniciados como filhos dokthreaddprocesso no espaço do Kernel.

Processo pai:O ID do processo kthreaddé 2 e os trabalhadores deste kernel podem ser listados com:

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 pode ser usado com um script bash + cron para observar as alterações... alternativamente para uma análise temporizada direta, perfpode ser usado ( 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

Navegue no gráfico de chamadas com,,,e Enter.


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

informação relacionada