Benchmarks pour serveurs Linux : une sélection d'outils ouverts

Nous continuons à parler des outils permettant d'évaluer les performances du processeur sur les machines Linux. Aujourd'hui dans le matériel : temci, uarch-bench, likwid, perf-tools et llvm-mca.

Plus de repères :

Benchmarks pour serveurs Linux : une sélection d'outils ouverts
Фото - lukas blazek - sans éclaboussures

temci

Il s'agit d'un outil permettant d'estimer le temps d'exécution de deux programmes. Essentiellement, il permet de comparer le temps d’exécution de deux applications. L'auteur de l'utilitaire était un étudiant allemand, Johannes Bechberger, qui l'a développé dans le cadre de sa thèse de premier cycle en 2016. L'outil d'aujourd'hui distribué par sous licence GNU General Public License.

Johannes souhaitait créer un outil qui lui permettrait de mesurer les performances d'un système informatique dans un environnement contrôlé. Par conséquent, l’une des principales caractéristiques de temci est la possibilité de mettre en place un environnement de test. Par exemple, on peut: modifier les paramètres du gestionnaire de fréquence du processeur, désactiver hyperthreading et les caches L1 et L2, désactivez le mode turbo sur les processeurs Intel, etc. Pour l'analyse comparative, Temci utilise des outils fiable, performance_stat и faire usage.

Voici à quoi ressemble l'utilitaire dans le premier cas :

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

Sur la base des résultats de l'analyse comparative, le système génère rapport pratique avec des diagrammes, des tableaux et des graphiques, ce qui distingue temci des solutions similaires.

Parmi les défauts de Temci, on distingue sa « jeunesse ». À cause de cela, il tout n'est pas pris en charge configurations matérielles et logicielles. Par exemple, il est difficile de l’exécuter sur macOS et certaines fonctionnalités ne sont pas disponibles sur un système ARM. À l'avenir, la situation pourrait changer, car l'auteur développe activement le projet et le nombre d'étoiles sur GitHub augmente progressivement - il n'y a pas si longtemps, même temci discuté dans les commentaires sur Hacker News.

banc en arc

Un utilitaire d'évaluation des performances des fonctions CPU de bas niveau, développé par l'ingénieur Travis Downs (Travis Downs). Récemment, il a blogué Questions de performance sur les pages GitHub, qui parle des outils d'analyse comparative et d'autres choses connexes. En général, uarch-bench commence tout juste à gagner en popularité, mais il est déjà assez courant mentionné résidents de Hacker News dans des fils de discussion thématiques en tant qu'outil incontournable d'analyse comparative.

Uarch-bench vous permet d'évaluer les performances de la mémoire, la vitesse de chargement des données en parallèle et le travail de nettoyage Registres YMM. À quoi ressemblent les résultats d'analyse comparative générés par le programme dans le dépôt officiel au bas de la page.

Il convient de noter que uarch-bench, comme temci, se déconnecte Fonction Intel Turbo Boost (elle augmente automatiquement la vitesse d'horloge du processeur sous charge) afin que les résultats des tests soient cohérents.

Pour l'instant, le projet en est aux premiers stades de développement, donc uarch-bench ne dispose pas de documentation détaillée et son fonctionnement peut contenir des bogues - par exemple, les difficultés sont connues avec lancement sur Ryzen. De plus, seuls les tests pour les architectures x86 sont pris en charge. L'auteur promet d'ajouter plus de fonctionnalités à l'avenir et vous invite à rejoindre le développement.

liquide

Il s'agit d'un ensemble d'outils permettant d'évaluer les performances des machines Linux équipées de processeurs Intel, AMD et ARMv8. Il a été créé sous les auspices du ministère fédéral allemand de l’Éducation et de la Recherche en 2017 et publié en open source.

Parmi les outils likwid, on peut souligner likwid-powermeter, qui affiche les informations des registres RAPL sur la puissance consommée par le système, ainsi que likwid-setFrequencies, qui permet de contrôler la fréquence du processeur. Vous pouvez voir la liste complète trouver dans le dépôt.

L'outil est utilisé par les ingénieurs impliqués dans la recherche HPC. Par exemple, avec likwid fonctionne un groupe de spécialistes du Centre informatique régional de l'Université d'Erlangen-Nuremberg (RRZE) en Allemagne. Elle participe également activement au développement de cet ensemble d’outils.

Benchmarks pour serveurs Linux : une sélection d'outils ouverts
Фото - Clém Onojeghuo - sans éclaboussures

outils de performance

Cet outil d'analyse des performances des serveurs Linux представил Brendan Gregg. Il est l'un des développeurs DTrace — un framework de traçage dynamique pour le débogage des applications en temps réel.

perf-tools est basé sur les sous-systèmes du noyau perf_events et ftrace. Leurs utilitaires vous permettent d'analyser la latence d'E/S (iosnoop), de suivre les arguments des appels système (unccount, funcslower, funcgraph et functrace) et de collecter des statistiques sur les « hits » dans le cache de fichiers (cachestat). Dans ce dernier cas, la commande ressemble à ceci :

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Une communauté assez importante s'est formée autour de l'instrument (près de 6 XNUMX étoiles sur GitHub). Et il y a des entreprises qui utilisent activement des outils de performance, par exemple Netflix. Mais l'outil est en cours de développement et de modification (bien que des mises à jour aient été publiées assez rarement ces derniers temps). Par conséquent, des erreurs peuvent survenir lors de son fonctionnement - l'auteur écrit que parfois perf-tools provoque une panique du noyau.

llvm-mca

Un utilitaire qui prédit la quantité de ressources informatiques dont le code machine aura besoin sur différents processeurs. Elle évalue Instructions par cycle (IPC) et la charge sur le matériel générée par une application particulière.

llvm-mca a été présenté en 2018 dans le cadre du projet LLVM, qui développe un système universel d'analyse, de transformation et d'optimisation des programmes. On sait que les auteurs de llvm-mca se sont inspirés d'une solution d'analyse des performances logicielles IACA d'Intel et a cherché à créer une alternative. Et selon les utilisateurs, le résultat de l'outil (leur présentation et leur quantité) ressemble vraiment à l'IACA - exemple peut être trouvé ici. Cependant, llvm-mca n'accepte que Syntaxe AT&T, vous devrez donc probablement utiliser des convertisseurs pour travailler avec.

Ce que nous écrivons sur nos blogs et réseaux sociaux :

Benchmarks pour serveurs Linux : une sélection d'outils ouverts "Tapis. Le modèle de Wall Street" ou comment optimiser les coûts du cloud

Benchmarks pour serveurs Linux : une sélection d'outils ouverts Comment sécuriser votre système Linux : 10 conseils
Benchmarks pour serveurs Linux : une sélection d'outils ouverts Minimiser les risques : comment ne pas perdre vos données

Benchmarks pour serveurs Linux : une sélection d'outils ouverts Livres pour ceux qui sont déjà impliqués dans l'administration système ou qui envisagent simplement de commencer
Benchmarks pour serveurs Linux : une sélection d'outils ouverts Sélection : cinq livres et un cours sur les réseaux

Benchmarks pour serveurs Linux : une sélection d'outils ouvertsChez 1cloud.ru, nous offrons un service gratuit "Hébergement DNS" Vous pouvez gérer les enregistrements DNS dans un seul compte personnel.

Source: habr.com

Ajouter un commentaire