Punts de referència per a servidors a Linux: una selecció d'eines de codi obert

Continuem parlant d'eines per avaluar el rendiment de la CPU a les màquines Linux. Avui en el material: temci, uarch-bench, likwid, perf-tools i llvm-mca.

Més punts de referència:

Punts de referència per a servidors a Linux: una selecció d'eines de codi obert
Фото - Lukas Blazek — Desesquitxa

temci

Aquesta és una eina per estimar el temps d'execució de dos programes. Essencialment, permet comparar el temps d'execució de dues aplicacions. L'autor de la utilitat va ser un estudiant alemany, Johannes Bechberger, que la va desenvolupar com a part de la seva tesi de grau el 2016. L'eina d'avui Distribuït per amb llicència sota la Llicència Pública General de GNU.

Johannes volia crear una eina que li permetés mesurar el rendiment d'un sistema informàtic en un entorn controlat. Per tant, una de les característiques principals de temci és la capacitat de configurar un entorn de prova. Per exemple, un pot: canvieu la configuració del gestor de freqüència de la CPU, desactiveu-lo hiperfilatge i cachés L1 i L2, desactivar el mode turbo en els processadors Intel, etc. Per a l'anàlisi comparativa, temci utilitza eines temps, perf_stat и getrusage.

Aquest és el aspecte de la utilitat en el primer 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

A partir dels resultats del benchmarking, el sistema genera informe convenient amb diagrames, taules i gràfics, que distingeix temci de solucions semblants.

Entre les mancances del temci, destaca la seva “joventut”. Per això ell no tot està recolzat configuracions de maquinari i programari. Per exemple, és difícil executar-se amb macOS i algunes funcions no estan disponibles en un sistema basat en ARM. En el futur, la situació pot canviar, ja que l'autor està desenvolupant activament el projecte i el nombre d'estrelles a GitHub augmenta gradualment, no fa gaire, fins i tot comentat als comentaris a Hacker News.

uarc-banc

Una utilitat per avaluar el rendiment de les funcions de CPU de baix nivell, desenvolupada per l'enginyer Travis Downs (Travis Downs). Recentment ha fet un blog El rendiment és important a les pàgines de GitHub, que parla d'eines de benchmarking i altres coses relacionades. En general, uarch-bench tot just comença a guanyar popularitat, però ja és força comú esmentat residents de Hacker News en fils temàtics com a eina de referència per a l'avaluació comparativa.

Uarch-bench us permet avaluar el rendiment de la memòria, la velocitat de càrrega de dades paral·leles i el treball de neteja Registres YMM. Es pot trobar com són els resultats de benchmarking generats pel programa al repositori oficial a la part inferior de la pàgina.

Val la pena assenyalar que uarch-banc, com temci, desconnecta Funció Intel Turbo Boost (augmenta automàticament la velocitat del rellotge del processador sota càrrega) perquè els resultats de la prova siguin coherents.

De moment, el projecte es troba en les primeres etapes de desenvolupament, de manera que uarch-bench no té documentació detallada i el seu funcionament pot contenir errors, per exemple, les dificultats es coneixen amb llançament a Ryzen. A més, només s'admeten els punts de referència per a arquitectures x86. L'autor es compromet a afegir més funcionalitats en el futur i us convida a unir-vos al desenvolupament.

líquid

Aquest és un conjunt d'eines per avaluar el rendiment de les màquines Linux amb processadors Intel, AMD i ARMv8. Va ser creat sota els auspicis del Ministeri Federal d'Educació i Investigació alemany el 2017 i es va publicar en codi obert.

Entre les eines likwid podem destacar likwid-powermeter, que mostra informació dels registres RAPL sobre la potència consumida pel sistema, així com likwid-setFrequencies, que permet controlar la freqüència del processador. Podeu veure la llista completa trobar al repositori.

L'eina és utilitzada pels enginyers implicats en la investigació HPC. Per exemple, amb likwid obres un grup d'especialistes del Centre Regional de Computació de la Universitat d'Erlangen-Nuremberg (RRZE) a Alemanya. També participa activament en el desenvolupament d'aquest conjunt d'eines.

Punts de referència per a servidors a Linux: una selecció d'eines de codi obert
Фото - Clem Onojeghuo — Desesquitxa

eines de perfeccionament

Aquesta eina per analitzar el rendiment dels servidors Linux introduït Brendan Gregg. Ell és un dels desenvolupadors DTrace — un marc de seguiment dinàmic per depurar aplicacions en temps real.

perf-tools es basa en els subsistemes del nucli perf_events i ftrace. Les seves utilitats us permeten analitzar la latència d'E/S (iosnoop), fer un seguiment dels arguments de la trucada del sistema (unccount, funcslower, funcgraph i functrace) i recopilar estadístiques sobre "accets" a la memòria cau de fitxers (cachestat). En aquest últim cas, l'ordre té aquest aspecte:

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

Al voltant de l'instrument s'ha format una comunitat bastant gran (gairebé 6 mil estrelles a GitHub). I hi ha empreses que utilitzen activament eines de perfeccionament, per exemple Netflix. Però l'eina s'està desenvolupant i modificant encara més (tot i que darrerament s'han publicat actualitzacions molt poques vegades). Per tant, es poden produir errors en el seu funcionament; l'autor escriu que, de vegades, les eines de perfeccionament provoquen el pànic del nucli.

llvm-mca

Una utilitat que prediu quants recursos informàtics necessitarà el codi màquina en diferents CPU. Ella avalua Instruccions per cicle (IPC) i la càrrega del maquinari que genera una aplicació concreta.

llvm-mca es va presentar el 2018 com a part del projecte LLVM, que està desenvolupant un sistema universal d'anàlisi, transformació i optimització de programes. Se sap que els autors de llvm-mca es van inspirar en una solució per analitzar el rendiment del programari IACA d'Intel i buscava crear una alternativa. I segons els usuaris, la sortida de l'eina (la seva disposició i quantitat) s'assembla realment a IACA - exemple es pot trobar aquí. Tanmateix, llvm-mca només accepta Sintaxi AT&T, de manera que probablement haureu d'utilitzar convertidors per treballar-hi.

Què escrivim als nostres blogs i xarxes socials:

Punts de referència per a servidors a Linux: una selecció d'eines de codi obert "Estora. model de Wall Street" o com optimitzar els costos del núvol

Punts de referència per a servidors a Linux: una selecció d'eines de codi obert Com protegir el vostre sistema Linux: 10 consells
Punts de referència per a servidors a Linux: una selecció d'eines de codi obert Minimització de riscos: com no perdre les vostres dades

Punts de referència per a servidors a Linux: una selecció d'eines de codi obert Llibres per a aquells que ja estan involucrats en l'administració del sistema o només estan pensant començar
Punts de referència per a servidors a Linux: una selecció d'eines de codi obert Selecció: cinc llibres i un curs sobre xarxes

Punts de referència per a servidors a Linux: una selecció d'eines de codi obertA 1cloud.ru oferim un servei gratuït "Allotjament DNS" Podeu gestionar els registres DNS en un sol compte personal.

Font: www.habr.com

Afegeix comentari