Benchmarks pour serveurs sous Linux : sélection d'outils open source

Nous continuons à parler des outils d'évaluation des performances du CPU sur les machines Linux. Aujourd'hui, nous aborderons : temci, uarch-bench, likwid, perf-tools et llvm-mca.

Davantage de benchmarks :

Benchmarks pour serveurs sous Linux : sélection d'outils open source
Photo — Lukas Blazek — Unsplash

temci

C'est un outil pour évaluer le temps d'exécution de deux programmes. En gros, il permet de comparer le temps d'exécution de deux applications. L'auteur de cet utilitaire est un étudiant allemand, Johannes Bechberger, qui l'a développé dans le cadre de son mémoire de bachelor en 2016. Aujourd'hui, l'outil est distribué est sous licence GNU General Public License.

Johannes voulait créer un outil capable de mesurer la performance d'un système de calcul dans un environnement contrôlé. Ainsi, l'une des principales caractéristiques de temci est la possibilité de configurer l'environnement de test. Par exemple, est possible: modifier les paramètres du gestionnaire de fréquence du CPU, désactiver l'hyper-threading et les caches L1 et L2, désactiver le mode turbo sur les processeurs Intel, etc. Pour le benchmarking, temci utilise des outils time, perf_stat et getrusage.

Voici à quoi ressemble le fonctionnement de 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

D'après les résultats du benchmarking, le système génère un rapport pratique avec des diagrammes, des tableaux et des graphiques, ce qui distingue temci des solutions similaires.

Comme inconvénient, on note la « jeunesse » de temci. À cause de cela, il ne supporte pas toutes les configurations matérielles et logicielles. Par exemple, il est difficile de le faire fonctionner sous macOS, et sur les systèmes avec un processeur ARM, certaines fonctionnalités ne sont pas disponibles. À l'avenir, la situation pourrait changer, car l'auteur développe le projet activement, et le nombre d'étoiles sur GitHub augmente progressivement — il n'y a pas longtemps, temci a même été discuté dans les commentaires sur Hacker News.

uarch-bench

Un utilitaire pour évaluer les performances des fonctions bas niveau du CPU, développé par l'ingénieur Travis Downs. Récemment, il tient un blogPerformance Matterssur GitHub Pages, où il parle des outils de benchmarking et d'autres sujets connexes. En général, uarch-bench commence à gagner en popularité, mais est déjà plutôt souvent mentionné par les membres de Hacker News dans des fils de discussion thématiques comme l'outil de prédilection pour le benchmarking. Uarch-bench permet d'évaluer la performance de la mémoire, la vitesse du chargement parallèle des données et le nettoyage. des données.

Uarch-bench permet d'évaluer les performances de la mémoire, la vitesse de chargement parallèle des données et le fonctionnement de nettoyage. Les registres YMM. Vous pouvez trouver à quoi ressemblent les résultats de benchmarking générés par le programme dans le dépôt officiel en bas de la page.

Il est à noter que uarch-bench, tout comme temci, désactive la fonction Intel Turbo Boost (qui augmente automatiquement la fréquence du processeur sous charge) pour que les résultats des tests soient cohérents.

Pour l’instant, le projet est encore à un stade précoce de développement, donc uarch-bench n’a pas de documentation détaillée et des bugs peuvent apparaître dans son fonctionnement — par exemple, des difficultés sont connues avec le démarrage sur Ryzen. De plus, seuls les benchmarks pour les architectures x86 sont pris en charge. L'auteur promet d'ajouter plus de fonctionnalités à l'avenir et invite à participer au développement.

likwid

C'est un ensemble d'outils pour évaluer la performance des machines Linux avec processeurs Intel, AMD et ARMv8. Il a été créé sous l'égide du ministère fédéral de l'éducation et de la recherche scientifique d'Allemagne en 2017 et est passé en open source.

Parmi les outils de likwid, on peut distinguer likwid-powermeter, qui fournit des informations à partir 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 trouver la liste complète dans le dépôt.

Cet outil est utilisé par les ingénieurs qui travaillent dans le domaine du HPC. Par exemple, avec likwid, sur un groupe de spécialistes du Centre de calcul régional de l'Université d'Erlangen-Nuremberg (RRZE) en Allemagne. Ce groupe participe également activement au développement de cet ensemble d'outils.

Benchmarks pour serveurs sous Linux : sélection d'outils open source
Photo — Clem Onojeghuo — Unsplash

perf-tools

C'est un outil pour analyser la performance des serveurs Linux présenté Brendan Gregg. Il est l'un des développeurs DTrace — un framework de traçage dynamique pour déboguer des applications en temps réel.

L’outil perf-tools repose sur les sous-systèmes du noyau perf_events et ftrace. Ses utilitaires permettent d'analyser la latence d'entrée/sortie (iosnoop), de suivre les arguments des appels système (unccount, funcslower, funcgraph et functrace) et de rassembler des statistiques sur les « hits » dans le cache de fichiers (cachestat). Dans ce dernier cas, la commande se présente comme suit :

# ./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

Autour de l'outil s'est formée une communauté assez vaste (près de 6 000 étoiles sur GitHub). Et il existe des entreprises qui utilisent activement perf-tools, par exemple Netflix. Mais l'outil est constamment amélioré et modifié (bien que les mises à jour soient plutôt rares ces derniers temps). Par conséquent, des erreurs peuvent survenir dans son fonctionnement — l'auteur indique que parfois, perf-tools provoque un kernel panic.

llvm-mca

Un utilitaire qui prédit combien de ressources informatiques seront nécessaires au code machine sur différents CPU. Il évalue Instructions Par Cycle (IPC) et la charge sur le matériel générée par telle ou telle application.

llvm-mca a été présenté en 2018 dans le cadre du projet LLVM, qui se consacre au développement d'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 de performance logicielle IACA d'Intel et cherchaient à créer son alternative. Et selon les utilisateurs, les résultats de l'outil (leur format et leur quantité) ressemblent effectivement à IACA — un exemple peut être trouvé ici. Cependant, llvm-mca ne prend en charge que la syntaxe AT&T, donc pour travailler avec lui, il faudra probablement utiliser des convertisseurs.

De quoi nous parlons dans nos blogs et sur nos réseaux sociaux :

Benchmarks pour serveurs sous Linux : sélection d'outils open source «Modèle mathématique de Wall Street» ou comment optimiser les coûts dans le cloud

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

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

Benchmarks pour serveurs sous Linux : sélection d'outils open sourceNous, chez 1cloud.ru, proposons un service gratuit «Hébergement DNS». Gérer les enregistrements DNS chez nous est possible depuis un seul panneau de configuration.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster