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

Nous continuons de parler d'outils pour évaluer les performances du processeur sur les machines Linux. Aujourd'hui dans la matière: temci, uarch-bench, likwid, perf-tools et llvm-mca.

Plus de repères:



Photos - Lukas Blazek - Unsplash



temci


Il s'agit d'un outil d'estimation du temps d'exécution de deux programmes. En fait, il vous permet de comparer le temps d'exécution de deux applications. L'utilitaire a été écrit par un étudiant allemand Johannes Bechberger, qui l'a développé dans le cadre de son travail de premier cycle en 2016. Aujourd'hui, l'outil est sous licence GNU General Public License.

Johannes voulait créer un outil qui mesurerait 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 configurer un environnement de test. Par exemple, vous pouvez : modifier les paramètres du gestionnaire de contrôle de la fréquence du processeur, désactiver l' hyper-threading et les caches L1 et L2, désactiver le mode turbo sur les processeurs Intel et autres. Pour l'analyse comparative, temci utilise les outils time , perf_stat et getrusage .

Voici comment fonctionne 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 un rapport pratique avec des diagrammes, des tableaux et des graphiques, qui distingue temci des solutions similaires.

Des défauts de temci se distingue sa «jeunesse». Pour cette raison, il ne prend pas en charge toutes les configurations matérielles et logicielles. Par exemple, il est difficile de l'exécuter sous macOS et certaines fonctions ne sont pas disponibles sur un système doté d'un processeur ARM. La situation pourrait changer à l'avenir, car l'auteur développe activement le projet et le nombre d'étoiles sur GitHub augmente progressivement - il n'y a pas si longtemps, temci a même été discuté dans les commentaires sur Hacker News.



banc d'uarque


Utilitaire pour évaluer les performances des fonctions CPU de bas niveau, qui a été développé par l'ingénieur Travis Downs ( Travis Downs ). Récemment, il a géré son blog Performance Matters sur GitHub Pages, qui parle d'outils d'analyse comparative et d'autres choses connexes. En général, le uarch-bench commence tout juste à gagner en popularité, mais il est déjà assez souvent mentionné par les résidents de Hacker News dans les fils thématiques comme un outil de référence.

Uarch-bench vous permet d'évaluer les performances de la mémoire, la vitesse de chargement parallèle des données et de travailler sur le nettoyage des registres YMM . À quoi ressemblent les résultats de l'analyse comparative générés par le programme, consultez le référentiel officiel en bas de la page.

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

Jusqu'à présent, le projet en est aux premiers stades de développement, donc le uarch-bench n'a pas de documentation détaillée, et il peut y avoir des bogues dans son travail - par exemple, des difficultés avec l'exécution sur Ryzen sont connues . Seuls les benchmarks pour les architectures x86 sont également pris en charge. L'auteur promet d'ajouter plus de fonctionnalités à l'avenir et invite à rejoindre le développement.



likwid


Il s'agit d'une boîte à outils pour évaluer les performances des machines Linux avec les 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 transféré en open source.

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

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





Photos - Clem Onojeghuo - Unsplash



perf-tools


Cet outil d'analyse des performances des serveurs Linux a été introduit par Brendan Gregg. Il est l'un des développeurs de DTrace , un framework de traçage dynamique pour le débogage d'applications en temps réel.

Les perf-tools sont basés sur les sous-systèmes du noyau perf_events et ftrace. Leurs utilitaires vous permettent d'analyser le délai d'entrée / sortie (iosnoop), de suivre les arguments pour accéder aux 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'outil ( près de 6 000 étoiles sur GitHub ). Et il y a des entreprises qui utilisent activement des outils de performance, comme Netflix . Mais l'outil est en cours de finalisation et de modification (bien que des mises à jour aient été publiées assez rarement récemment). Par conséquent, des erreurs peuvent se produire dans son travail - l'auteur écrit que parfois perf-tools appelle la panique du noyau.



llvm-mca


Un utilitaire qui prédit la quantité de ressources informatiques dont un code machine aura besoin sur différents CPU. Il évalue les instructions par cycle ( IPC ) et la charge matérielle générée par une application.

llvm-mca a été introduit en 2018 dans le cadre du projet LLVM , qui développe un système universel d'analyse, de transformation et d'optimisation des programmes. Il est connu que les auteurs de llvm-mca se sont inspirés de la solution d'analyse des performances du logiciel Intel IACA et ont cherché à en créer une alternative. Et selon les utilisateurs, la sortie de l'outil (leur balisage et leur nombre) ressemble vraiment à IACA - un exemple peut être trouvé ici . Cependant, llvm-mca accepte uniquement la syntaxe AT & T , vous devrez donc probablement utiliser des convertisseurs pour travailler avec.



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

"Mat. Modèle de Wall Street "ou comment optimiser les coûts du cloud

Sécuriser votre système Linux: 10 conseils
Minimisation des risques: comment ne pas perdre vos données

Livres pour ceux qui sont déjà engagés dans l'administration système ou qui envisagent de commencer
Sélection: cinq livres et un cours sur les réseaux



Chez 1cloud.ru, nous offrons un service gratuit « hébergement DNS ». Vous pouvez gérer vos enregistrements DNS dans un seul compte personnel.


Source: https://habr.com/ru/post/fr464763/


All Articles