GNU/Linux >> Tutoriels Linux >  >> Linux

Crochets Netfilter sur le système multicœur

Le problème ne vient pas de netfilter, c'est la façon dont votre noyau gère les interruptions.

Par défaut, les anciennes versions d'APIC délivrent toutes les interruptions au CPU0.

Vous pouvez vérifier si c'est votre problème avec :

cat /proc/interrupts

Vous pouvez voir si les interruptions de la carte réseau (et rappelez-vous que le crochet netfilter sont exécutés sur un SoftIRQ RX ou TX) sont gérées par un seul noyau.

Dans les nouvelles versions du noyau, il existe une option de compilation (CONFIG_HOTPLUG_CPU), qui équilibre les IRQ sur les cœurs existants.

Ou si vous ne pouvez pas mettre à jour la version ou recompiler le noyau, vous pouvez mettre à jour l'affinité SMP (avec un masque qui gère plus qu'un CPUid) pour essayer d'équilibrer les différents cœurs. Ou allez dans ACPI et la configuration appropriée (Ici, je ne peux pas aider plus).

Vous trouverez ici tout ce qui concerne ce genre de choses (affinité SMP et gestion appropriée des IRQ)


Un problème peut être que votre carte réseau n'a qu'une seule interruption. Certains NICS plus récents ont plusieurs interruptions (appelées NIC multifiles d'attente) permettant de répartir la charge sur plusieurs threads.

Pour les cartes réseau à file d'attente unique, certaines fonctionnalités logicielles sont disponibles dans les nouveaux noyaux que vous pouvez configurer pour répartir la charge. Voir par ex. http://www.spinics.net/lists/linux-doc/msg02975.html pour un aperçu de ce qui est disponible.


Linux
  1. Journaux système NG

  2. Le problème Thundering Herd existe-t-il encore sous Linux ?

  3. Valeur de retour de x =os.system(..)

  4. Changer temporairement d'heure

  5. Qu'est-ce qu'un espace de noms UTS ?

Commande Fsck sous Linux

Linux est-il un système d'exploitation ou un noyau ?

Documenter la disponibilité du système sous Linux

Le temps du système

Comment réparer l'erreur "Problème de programme système détecté" sur Ubuntu

Comment mettre à niveau Ubuntu 18.04 vers Ubuntu 20.04