Je teste la quantité de CPU utilisée par iptables pour le NAT. Peut-être serait-il plus précis de dire "la quantité de CPU utilisée par le module kernel netfilter".
L'approche que j'ai prise a été d'essayer de vider le système de tous les processus utilisateur, d'exécuter le streaming et de vérifier la charge moyenne
dans top. Dans ce cas, les charges moyennes sont assez faibles, comme si le processeur n'était pas affecté par le routage des paquets.
Cependant, après avoir lu un peu sur ce que signifie la charge moyenne (ici), il semble que cela ne représente pas l'utilisation du CPU mais la longueur de la file d'attente des processus.
D'après ma compréhension actuelle, l'exécution des modules kernel n'est pas considérée comme des processus, c'est pourquoi elle ne sera jamais répertoriée dans la file d'attente des processus.
Cela signifie-t-il que la seule façon de détecter une surcharge du CPU par du code kernel est de l'exécuter avec un code utilisateur et de voir le code utilisateur échouer car il ne reçoit pas de temps de processeur ?
Un exemple simple pour formuler la question. Si un morceau de code kernel avait un bug de "boucle occupée", comment détecteriez-vous que c'est le kernel qui surutilise le cpu ?