Routeur ou portable à court de CPU ? Pourquoi votre débit VPN s'arrête trop tôt
Un routeur ou un portable peut manquer de puissance de calcul avant que le lien ne soit saturé. Surveillez la charge par cœur pendant un transfert contrôlé, puis vérifiez le déchargement avant d'accuser qui que ce soit.
Un routeur vante un Wi-Fi rapide puis peine à chiffrer le trafic de trois appareils à la fois. Un portable atteint une limite de calcul alors que le lien d'accès a encore de la marge. On accuse d'abord le serveur, et il est généralement innocent. La limite se trouve sur la machine qui fait le travail du tunnel, et la trouver suppose d'observer cette machine plutôt que le test de débit.
Le symptôme désigne une machine, pas Internet
L'endroit où tourne le tunnel décide quel processeur en paie le prix. Si le routeur le termine, chaque client couvert partage le budget de ce routeur. Si le portable exécute un client, c'est le portable qui paie et non le routeur. Des tunnels aux deux extrémités créent deux charges de travail qui peuvent chacune devenir la limite un autre jour. Nommer la machine est la première étape, et c'est celle que les gens sautent quand ils ouvrent un ticket contre le fournisseur.
Comptez les appareils entre l'application et l'extrémité distante, puis marquez celui qui chiffre. Tout le reste n'est qu'un transporteur d'octets qu'il ne peut pas lire.
Surveillez la charge par cœur pendant un transfert
Un pourcentage global de CPU est le mauvais instrument, car le chiffrement fixe souvent un seul cœur pendant que les autres restent inactifs. Regardez les chiffres par cœur pendant un transfert contrôlé et guettez un cœur proche de la saturation. Une moyenne modérée avec un seul thread occupé est un signal fort, tandis qu'une moyenne élevée sans thread occupé signifie généralement un programme sans rapport. Le motif compte plus que le nombre.
mpstat -P ALL 1 5
top -H -b -n 1 | head -20
lscpu | grep -i -E "model name|aes"
La troisième commande indique si le processeur expose des instructions AES, ce qui change le coût du même chiffrement dans une large mesure. Elle n'indique pas si l'implémentation VPN les utilise, et l'écart entre ces deux faits est à l'origine de la plupart des promesses d'optimisation.
Séparez le chiffrement du traitement des paquets
Le chiffrement est un coût parmi d'autres. La copie de paquets entre le noyau et l'espace utilisateur, les recherches de routage, les règles de pare-feu et la gestion des interfaces y contribuent tous, et certaines implémentations paient plus pour la copie que pour la cryptographie. Repérez quel compteur monte avec le transfert au lieu de faire confiance au nom du processus pour expliquer chaque cycle. Un tunnel en espace utilisateur et un tunnel dans le noyau peuvent afficher des profils complètement différents pour un trafic identique.
Si un cœur est occupé à l'intérieur du noyau, le remède diffère de celui d'un thread occupé en espace utilisateur, et le profil vous dit lequel vous avez. Cette distinction vaut une heure avant d'acheter du matériel.
Comparez ce qui est comparable avant de conclure
Une comparaison n'est utile que si la tâche, le réseau d'accès et le point de terminaison restent identiques. Changez le serveur et le résultat inclut la route et la capacité de ce serveur ; changez le réseau et il inclut l'opérateur. Utilisez le même fichier, la même destination et la même heure de la journée, et mettez en pause votre propre travail en arrière-plan. Si vous devez changer d'appareil, ne changez que l'appareil.
L'alimentation et la chaleur modifient les performances durables, donc une courte exécution sur une machine froide n'est pas la même mesure qu'un long transfert sur une machine chaude. Comparez des conditions d'alimentation similaires et notez-les, car une limite thermique ressemble exactement à une limite de calcul sur un graphique.
Utilisez le déchargement pris en charge et vérifiez qu'il s'est réellement activé
Certaines implémentations peuvent déplacer une partie du chemin de données dans le noyau ou dans le matériel, et la disponibilité dépend du client, du système d'exploitation, du serveur et de la configuration. Lisez la documentation de la version que vous exécutez et utilisez sa propre sortie d'état ou ses journaux pour confirmer que la fonction est active. Un paquet installé ou une case cochée ne sont pas une preuve. Le manuel d'OpenVPN documente les options de canal de données pour ses propres versions, et ces options diffèrent selon les versions.
Quand un changement pris en charge déplace le plafond, relancez à la fois la tâche applicative et un transfert en masse, et conservez le profil précédent pour pouvoir revenir en arrière. Un débit en masse qui double alors que l'application reste lente a déplacé le goulot d'étranglement plutôt que de le supprimer.
Si les observations du processeur ne suivent pas le symptôme, revenez du côté du réseau. Les réessais Wi-Fi, la mise en file et le chemin de sortie produisent le même résultat sans aucune intervention du CPU.