Benchmark per server Linux: una selezione di strumenti aperti

Continuiamo a parlare di strumenti per valutare le prestazioni della CPU su macchine Linux. Oggi nel materiale: temci, uarch-bench, likwid, perf-tools e llvm-mca.

Altri parametri di riferimento:

Benchmark per server Linux: una selezione di strumenti aperti
Фото - Luca Blazek — Spruzza

temci

Questo è uno strumento per stimare il tempo di esecuzione di due programmi. In sostanza, consente di confrontare il tempo di esecuzione di due applicazioni. L'autore dell'utilità è stato uno studente tedesco, Johannes Bechberger, che l'ha sviluppata come parte della sua tesi di laurea nel 2016. Lo strumento di oggi distribuito da concesso in licenza sotto la GNU General Public License.

Johannes voleva creare uno strumento che gli permettesse di misurare le prestazioni di un sistema informatico in un ambiente controllato. Pertanto, una delle caratteristiche principali di temci è la capacità di impostare un ambiente di test. Per esempio, si può: modifica le impostazioni del gestore della frequenza della CPU, disabilita iper-threading e cache L1 e L2, disattiva la modalità turbo sui processori Intel, ecc. Per il benchmarking temci utilizza strumenti tempo, perf_stat и getrusage.

Ecco come appare l'utilità nel primo caso:

# 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

Sulla base dei risultati del benchmarking, il sistema genera rapporto conveniente con diagrammi, tabelle e grafici, che distingue temci da soluzioni simili.

Tra i difetti di temci spicca la sua “giovinezza”. Per questo lui non tutto è supportato configurazioni hardware e software. Ad esempio, è difficile da eseguire su macOS e alcune funzionalità non sono disponibili su un sistema basato su ARM. In futuro, la situazione potrebbe cambiare, poiché l'autore sta sviluppando attivamente il progetto e il numero di stelle su GitHub sta gradualmente aumentando - non molto tempo fa anche temci discusso nei commenti su Hacker News.

panca uarch

Un'utilità per valutare le prestazioni delle funzioni della CPU di basso livello, sviluppata dall'ingegnere Travis Downs (Travis Downs). Recentemente ha scritto un blog Le prestazioni contano su GitHub Pages, che parla di strumenti di benchmarking e altre cose correlate. In generale, uarch-bench sta appena iniziando a guadagnare popolarità, ma è già abbastanza comune menzionato residenti di Hacker News in discussioni tematiche come strumento di riferimento per il benchmarking.

Uarch-bench consente di valutare le prestazioni della memoria, la velocità di caricamento dei dati paralleli e il lavoro di pulizia Registri YMM. È possibile trovare l'aspetto dei risultati del benchmarking generati dal programma nel repository ufficiale Nella parte inferiore della pagina.

Vale la pena notare che uarch-bench, come temci, disabilita Funzione Intel Turbo Boost (aumenta automaticamente la velocità di clock del processore sotto carico) in modo che i risultati del test siano coerenti.

Per ora, il progetto è nelle prime fasi di sviluppo, quindi uarch-bench non dispone di documentazione dettagliata e il suo funzionamento potrebbe contenere bug, ad esempio le difficoltà sono note con lancio su Ryzen. Inoltre, sono supportati solo i benchmark per le architetture x86. L'autore promette di aggiungere più funzionalità in futuro e ti invita a partecipare allo sviluppo.

liquido

Si tratta di un insieme di strumenti per valutare le prestazioni delle macchine Linux con processori Intel, AMD e ARMv8. È stato creato sotto gli auspici del Ministero federale tedesco dell'Istruzione e della ricerca nel 2017 e rilasciato in open source.

Tra gli strumenti likwid possiamo evidenziare likwid-powermeter, che visualizza informazioni dai registri RAPL sulla potenza consumata dal sistema, nonché likwid-setFrequencies, che consente di controllare la frequenza del processore. Puoi vedere l'elenco completo trovare nel repository.

Lo strumento viene utilizzato dagli ingegneri coinvolti nella ricerca HPC. Ad esempio, con likwid fabbrica un gruppo di specialisti del Centro regionale di calcolo dell'Università di Erlangen-Norimberga (RRZE) in Germania. Prende anche parte attiva allo sviluppo di questo set di strumenti.

Benchmark per server Linux: una selezione di strumenti aperti
Фото - Clem Onojeghuo — Spruzza

strumenti-perf

Questo strumento per analizzare le prestazioni dei server Linux presentata Brendan Gregg. È uno degli sviluppatori DTrace — un framework di tracciamento dinamico per il debug delle applicazioni in tempo reale.

perf-tools è basato sui sottosistemi del kernel perf_events e ftrace. Le loro utilità consentono di analizzare la latenza I/O (iosnoop), tenere traccia degli argomenti delle chiamate di sistema (unccount, funcslower, funcgraph e functrace) e raccogliere statistiche sugli "hit" nella cache dei file (cachestat). In quest'ultimo caso, il comando assomiglia a questo:

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

Attorno allo strumento si è formata una comunità abbastanza numerosa (quasi 6mila stelle su GitHub). E ci sono aziende che utilizzano attivamente i perf-tools, ad esempio Netflix. Ma lo strumento viene ulteriormente sviluppato e modificato (anche se ultimamente gli aggiornamenti sono stati rilasciati piuttosto raramente). Pertanto, potrebbero verificarsi errori nel suo funzionamento: l'autore scrive che a volte perf-tools provoca il panico del kernel.

llvm-mca

Un'utilità che prevede quante risorse di elaborazione il codice macchina richiederà su diverse CPU. Lei apprezza Istruzioni per ciclo (IPC) e il carico sull'hardware generato da una particolare applicazione.

llvm-mca è stato presentato nel 2018 come parte del progetto LLVM, che sta sviluppando un sistema universale per l'analisi, la trasformazione e l'ottimizzazione dei programmi. È noto che gli autori di llvm-mca si sono ispirati ad una soluzione per analizzare le prestazioni del software IACA di Intel e ha cercato di creare un'alternativa. E secondo gli utenti, l'output dello strumento (il layout e la quantità) assomiglia davvero a IACA, ad esempio può essere trovato qui. Tuttavia, llvm-mca accetta solo Sintassi AT&T, quindi molto probabilmente dovrai utilizzare i convertitori per lavorarci.

Di cosa scriviamo sui nostri blog e social network:

Benchmark per server Linux: una selezione di strumenti aperti "Stuoia. Modello Wall Street" ovvero come ottimizzare i costi del cloud

Benchmark per server Linux: una selezione di strumenti aperti Come proteggere il tuo sistema Linux: 10 suggerimenti
Benchmark per server Linux: una selezione di strumenti aperti Minimizzare i rischi: come non perdere i propri dati

Benchmark per server Linux: una selezione di strumenti aperti Libri per coloro che sono già coinvolti nell'amministrazione di sistema o stanno semplicemente pianificando di iniziare
Benchmark per server Linux: una selezione di strumenti aperti Selezione: cinque libri e un corso sulle reti

Benchmark per server Linux: una selezione di strumenti apertiNoi di 1cloud.ru offriamo un servizio gratuito “Hosting DNS" Puoi gestire i record DNS in un unico account personale.

Fonte: habr.com

Aggiungi un commento