Noyau temps réel Linux - compréhension des fonctions - noté directement 1 - script dans les ressources

1. Préparez les packages de version de noyau inutilisés (noyau par défaut, package de noyau en temps réel)
2. Modifiez le package de version du noyau, vérifiez l'affichage de la comparaison de version, vous pouvez utiliser la commande uname -r pour afficher
3. Utilisez l'outil cyclictest pour tester
( 1) git clone git : //git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git //Téléchargez le fichier rt-tests
(2)cd rt-tests //Entrez le dossier
(3) git checkout stable/v1 .0 (facultatif ou par défaut)//Il s'agit d'une branche stable, et les utilisateurs peuvent également basculer vers la dernière branche de développement si nécessaire.
Cette étape nécessite une attention : (la version d'ubuntu doit être installée : yum install build Paquets de dépendance -essential et libnuma-dev La version centos doit être installée : yum install numactl-devel)
La compilation cyclictest dépendra du paquet précédent
(4) Compiler
make all
make install
(5) Exécuter
pour entrer dans le répertoire rt-tests , exécutez la commande ./cyclictest pour afficher la figure suivante pour montrer que l'installation est réussie (paramètre MAX Delay)
insérez la description de l'image ici
(6) Pressurisez la mémoire du processeur à plus de 80 %, puis exécutez pendant 24 heures pour afficher le jeu de résultats
(7 ) gnuplot (facultatif, vous pouvez visualiser visuellement l'image png de sortie du résultat du test)
insérez la description de l'image ici
commande gnuplot d'entrée du terminal pour accéder au logiciel, continuez Entrez set term pour afficher les formats pris en charge (utilisez principalement le format png pour afficher les résultats)
insérez la description de l'image ici
(3) Après l'installation cyclictest, l'exécution du test rencontre un problème de permission
Après avoir téléchargé cette boîte à outils, la compilation est terminée et lors de l'exécution de ./cyclictest pour exécuter le programme, le problème d'autorisation root sera signalé sur la version du système Hyperserver Compiler et exécuter dans d'autres systèmes centos8.3 et systèmes Ubuntu est une solution possible : sysctl
-w kernel.sched_rt_runtime_us=-1 Exécutez cette commande et configurez-la
insérez la description de l'image ici
(4) Utilisez cyclictest pour tester
la charge machine simulée : (Il faut beaucoup de temps pour tester en partant du principe que l'hôte est sous charge : la charge est 80%, et le temps doit être de 1H ou un temps plus long est disponible, l'heure officielle est de 24H, utilisez actuellement le test 1H pour obtenir le résultat)
le résultat de l'exécution de cyclictest pendant une courte période n'a pas de sens, et le retard obtenu en exécutant cyslictest sans une charge appropriée sur le système de test Les statistiques n'ont également aucun sens.

#!/bin/bash
#L'exécution sur 8 processeurs tire le processeur à 100 %, puis génère une interruption de minuterie de 1 MHZ et continue de fonctionner en arrière-plan pendant 24 heures.
stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h
stress-ng --cpu 8 --cpu-method all --io 4 --vm 2 --vm-bytes 128M -- fourche 4 --timeout 60s

#Simuler la charge mémoire et exécuter 4 processus, chaque processus alloue 2g de mémoire et s'exécute en continu en arrière-plan pendant 24 heures.
stress-ng --vm 4 --vm-bytes 2g --vm-method all --vm-keep -v -t 24h
ou stress-ng --vm 8 --vm-bytes 80% -t 24h

#Génération de la charge d'E/S à l'aide de du Utilisez du pour générer la charge d'E/S
alors qu'il est vrai ; do taskset -c 3 /bin/du / ; done &
or stress-ng -i 6 --hdd 1 --timeout 24h
Cette commande ouvrira 1 Le travailleur lit et écrit des fichiers temporaires en continu et démarre 6 travailleurs en même temps pour appeler en continu l'appel système de synchronisation pour soumettre le cache. Le
script de test est :
https://www.osadl.org/Create-a-latency- plot-from-cyclictest-hi.bash-script-for-latency-plot.0.html
Ce script finira par générer un histogramme nommé plot.png, et affichera des statistiques avec un délai inférieur à 400us (vous pouvez modifier le nombre 400 suivi de -h 400, ensemble de modifications correspondant xrange [0:400]\n\ 400 ici), l'ordonnée est le nombre de retards inférieur à l'abscisse
#!/bin/bash

1. Exécutez le test cyclique

#Rediriger la sortie vers le fichier output
cyclictest -S -p 95 -i 1000 -h400 -D 24h -m -q >output #Exécuter 24 heures pour sortir le résultat en sortie

La commande de test donnée dans le script de test officiel

insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_41196999/article/details/131698301
conseillé
Classement