Cada pacote é processado por um núcleo diferente? Ou é um processo de thread único?
2
Não sei por que o Chopper3 encerrou esta pergunta. Para responder, no entanto: Iptables é realmente apenas o front end do espaço de usuário para o firewall linux, que é netfilter. O Netfilter é realmente um sistema de ganchos no kernel em torno do processamento de pacotes. Cada pacote é processado pelo kernel, acionando uma interrupção. Se o saldo do seu kernel é interrompido em várias CPUs, depende da idade. Veja este tópico no StackOverflow sobre isso. stackoverflow.com/questions/7467688/...
—
JakePaulus
+1, porque acho que é uma pergunta genuína.
—
Sachin Divekar
@JakePaulus Esse balanceamento de IRQ nunca atribuirá mais de um núcleo a uma interrupção. Portanto, nunca haverá uma troca de núcleos para cada pacote em uma única linha?
—
Nils
Do ponto de vista do cache da memória da CPU, alternar núcleos para uma única conexão não faz muito sentido - seria propenso a desacelerar as coisas se esses núcleos não compartilharem o mesmo cache. Mas por que você faz essa pergunta?
—
Nils
@Nils As interrupções geradas por uma interface podem ser redirecionadas para outra CPU menos ocupada. Além disso, várias interfaces podem ter suas interrupções enviadas para diferentes CPUs para espalhar a carga. Eu acho que você está certo sobre o tráfego de uma única interface não estar equilibrado entre as CPUs por pacote.
—
JakePaulus