15.3. Mesure de la latence
L'image cnf-tests
utilise trois outils pour mesurer la latence du système :
-
hwlatdetect
-
cyclictest
-
oslat
Chaque outil a un usage spécifique. Utilisez les outils dans l'ordre pour obtenir des résultats de test fiables.
- hwlatdetect
-
Mesure la ligne de base que le matériel bare-metal peut atteindre. Avant de procéder au test de latence suivant, assurez-vous que la latence signalée par
hwlatdetect
respecte le seuil requis, car vous ne pouvez pas corriger les pics de latence du matériel en réglant le système d'exploitation. - cyclocontrôle
-
Vérifie la latence de l'ordonnanceur du noyau en temps réel après que
hwlatdetect
a passé la validation. L'outilcyclictest
programme un timer répété et mesure la différence entre le temps de déclenchement souhaité et le temps de déclenchement réel. Cette différence peut mettre en évidence des problèmes de base dans le réglage, causés par des interruptions ou des priorités de processus. L'outil doit fonctionner sur un noyau en temps réel. - oslat
- Se comporte comme une application DPDK à forte intensité de CPU et mesure toutes les interruptions et perturbations de la boucle occupée qui simule un traitement de données à forte intensité de CPU.
Les tests introduisent les variables d'environnement suivantes :
Variables d’environnement | Description |
---|---|
| Spécifie le temps en secondes après lequel le test commence à s'exécuter. Vous pouvez utiliser cette variable pour permettre à la boucle de réconciliation du gestionnaire de CPU de mettre à jour le pool de CPU par défaut. La valeur par défaut est 0. |
| Spécifie le nombre de CPU que le pod exécutant les tests de latence utilise. Si vous ne définissez pas cette variable, la configuration par défaut inclut toutes les unités centrales isolées. |
| Spécifie le temps en secondes pendant lequel le test de latence doit être exécuté. La valeur par défaut est de 300 secondes. |
|
Spécifie la latence matérielle maximale acceptable en microsecondes pour la charge de travail et le système d'exploitation. Si vous ne définissez pas la valeur de |
|
Spécifie la latence maximale en microsecondes que tous les threads attendent avant de se réveiller pendant l'exécution de |
|
Spécifie la latence maximale acceptable en microsecondes pour les résultats du test |
| Variable unifiée qui spécifie la latence maximale acceptable en microsecondes. Applicable à tous les outils de latence disponibles. |
|
Paramètre booléen qui indique si les tests doivent être exécutés. |
Les variables spécifiques à un outil de latence ont la priorité sur les variables unifiées. Par exemple, si OSLAT_MAXIMUM_LATENCY
est réglé sur 30 microsecondes et MAXIMUM_LATENCY
sur 10 microsecondes, le test oslat
sera exécuté avec une latence maximale acceptable de 30 microsecondes.