Benchmark per server Linux: raccolta di strumenti open source

Continuiamo a parlare degli strumenti per valutare le prestazioni della CPU su macchine Linux. Oggi in questo articolo: temci, uarch-bench, likwid, perf-tools e llvm-mca.

Altri benchmark:

Benchmark per server Linux: raccolta di strumenti open source
Foto — Lukas Blazek — Unsplash

temci

Questo è uno strumento per valutare il tempo di esecuzione di due programmi. Fondamentalmente, consente di confrontare il tempo di esecuzione di due applicazioni. L'autore dell'utility è uno studente tedesco, Johannes Bechberger, che l'ha sviluppata come parte del suo progetto di laurea nel 2016. Oggi lo strumento è distribuito è concesso in licenza sotto la GNU General Public License.

Johannes voleva creare uno strumento che permettesse di misurare le prestazioni di un sistema di calcolo in un ambiente controllato. Pertanto, una delle caratteristiche principali di temci è la possibilità di configurare l'ambiente di test. Ad esempio, è possibile: modificare le impostazioni del gestore della frequenza della CPU, disabilitare l'iperthreading e le cache L1 e L2, disattivare la modalità turbo sui processori Intel, ecc. Per il benchmarking, temci utilizza strumenti time, perf_stat e getrusage.

Ecco come appare il funzionamento dell'utility 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 un report dettagliato con schemi, tabelle e grafici, che distingue temci da soluzioni simili.

Tra i difetti di temci c'è la sua "giovinezza". Per questo motivo, non supporta tutte le configurazioni dell'hardware e del software. Ad esempio, è difficile farlo funzionare su macOS, mentre su un sistema con un processore ARM alcune funzionalità non sono disponibili. In futuro, la situazione potrebbe cambiare, poiché l'autore sta attivamente sviluppando il progetto e il numero di stelle su GitHub continua a crescere: non molto tempo fa temci è stato persino discusso nei commenti su Hacker News.

uarch-bench

Un'utility per valutare le prestazioni delle funzioni a basso livello della CPU, sviluppata dall'ingegnere Travis Downs (Travis Downs). Recentemente ha avviato il suo blog Performance Matters su GitHub Pages, dove parla degli strumenti per il benchmarking e altre cose correlate. In generale, uarch-bench sta appena iniziando a guadagnare popolarità, ma viene già citato abbastanza frequentemente si menziona dai membri di Hacker News in thread tematici come strumento di riferimento per il benchmarking.

Uarch-bench consente di valutare le prestazioni della memoria, la velocità di caricamento dei dati in parallelo e il funzionamento di pulizia. Registri YMM. È possibile trovare come appaiono i risultati del benchmarking generati dal programma nel repository ufficiale in fondo alla pagina.

Vale la pena notare che uarch-bench, così come temci, disabilita la funzione Intel Turbo Boost (che aumenta automaticamente la frequenza di clock del processore sotto carico) per garantire risultati di test coerenti.

Attualmente il progetto è nelle fasi iniziali di sviluppo, pertanto uarch-bench non ha una documentazione dettagliata e potrebbe presentare bug — ad esempio, ci sono difficoltà nella sua esecuzione su Ryzen. Sono supportati solo i benchmark per le architetture x86. L'autore promette di aggiungere più funzionalità in futuro e invita a partecipare allo sviluppo.

likwid

Questo è un insieme di strumenti per la valutazione delle prestazioni delle macchine Linux con processori Intel, AMD e ARMv8. È stato creato sotto l'egida del Ministero federale dell'istruzione e della ricerca scientifica della Germania nel 2017 ed è stato rilasciato come open source.

Tra gli strumenti di likwid spicca likwid-powermeter, che fornisce informazioni dai registri RAPL riguardo il consumo energetico del sistema, e likwid-setFrequencies — che consente di controllare la frequenza del processore. È possibile trovare l'elenco completo nel repository..

Questo strumento viene utilizzato da ingegneri che si occupano di ricerche nel campo dell'HPC, ad esempio da un gruppo di specialisti del Regional Computing Center dell'Università di Erlangen-Norimberga (RRZE) in Germania. Questo gruppo partecipa attivamente allo sviluppo di questo insieme di strumenti. sulla tecnologia Dac. Il sistema monitora lo stato dell'hardware tramite sensori installati nella sala macchine. Essi analizzano le frequenze ultrasoniche e le vibrazioni del pavimento. perf-tools

Benchmark per server Linux: raccolta di strumenti open source
Foto — Clem Onojeghuo — Unsplash

Questo strumento per l'analisi delle prestazioni dei server Linux

è stato sviluppato da Brendan Gregg. È uno dei creatori ha presentato di un framework di tracciamento dinamico per il debug delle applicazioni in tempo reale. DTrace Alla base dei perf-tools ci sono le sottosistemi del kernel perf_events e ftrace. Le loro utilità consentono di analizzare il ritardo dell'input/output (iosnoop), monitorare gli argomenti delle chiamate di sistema (unccount, funcslower, funcgraph e functrace) e raccogliere statistiche sugli

accessi

# ./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 cache dei file (cachestat). In quest'ultimo caso, il comando appare così:Attorno a questo strumento si è formata una comunità piuttosto ampia (quasi 6 mila stelle su GitHub). E ci sono aziende che utilizzano attivamente i perf-tools, ad esempio Netflix. Ma lo strumento è in fase di sviluppo e modifica (anche se negli ultimi tempi gli aggiornamenti sono piuttosto rari). Pertanto, potrebbero occorrere degli errori nel suo funzionamento: l'autore scrive che a volte perf-tools provoca un kernel panic.

llvm-mca

Un'utilità che prevede quante risorse computazionali saranno necessarie per il codice macchina su diverse CPU. Essa valuta Istruzioni per ciclo (IPC) e il carico sull'hardware generato da un'applicazione o dall'altra.

llvm-mca è stato presentato nel 2018 nell'ambito del progetto LLVM, che si occupa dello sviluppo di un sistema universale per l'analisi, la trasformazione e l'ottimizzazione dei programmi. È noto che gli autori di llvm-mca si sono ispirati alla soluzione di analisi delle prestazioni software IACA di Intel e hanno cercato di creare una sua alternativa. E secondo gli utenti, i dati in uscita dello strumento (la loro formattazione e quantità) ricordano effettivamente IACA - un esempio può essere trovato qui. Tuttavia, llvm-mca accetta solo sintassi AT&T, quindi per lavorarci probabilmente sarà necessario utilizzare dei convertitori.

Di cosa parliamo nei nostri blog e nei social media:

Benchmark per server Linux: raccolta di strumenti open source «Modello matematico di Wall Street» o come ottimizzare i costi nel cloud

Benchmark per server Linux: raccolta di strumenti open source Come proteggere un sistema Linux: 10 consigli
Benchmark per server Linux: raccolta di strumenti open source Minimizzazione dei rischi: come non perdere i tuoi dati

Benchmark per server Linux: raccolta di strumenti open source Libri per chi già si occupa di amministrazione di sistemi o sta solo progettando di iniziare
Benchmark per server Linux: raccolta di strumenti open source Selezione: cinque libri e un corso sulle reti

Benchmark per server Linux: raccolta di strumenti open sourceNoi di 1cloud.ru offriamo un servizio gratuito di «hosting DNS». È possibile gestire i record DNS tramite un'unica area clienti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster