Benchmark per server Linux: selezione di strumenti open-source

Continuiamo a parlare degli strumenti per la valutazione delle prestazioni della CPU su macchine Linux. Oggi includiamo: temci, uarch-bench, likwid, perf-tools e llvm-mca.

Ulteriori benchmark:

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

temci

Questo è uno strumento per valutare il tempo di esecuzione di due programmi. In sostanza, consente di confrontare il tempo di esecuzione di due applicazioni. L'autore dell'utility è Johannes Bechberger, uno studente tedesco che l'ha sviluppata nell'ambito della sua tesi di laurea nel 2016. Oggi questo strumento distribuito è sotto licenza GNU General Public License.

Johannes voleva creare uno strumento che misurasse 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, disattivare hyper-threading e le cache L1 e L2, disattivare la modalità turbo sui processori Intel, e altro ancora. Per il benchmarking, temci utilizza strumenti ora, perf_stat e getrusage.

Ecco come si presenta il lavoro dell'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

In base ai risultati del benchmarking, il sistema genera un report utile con schemi, tabelle e grafici, che distingue temci dalle soluzioni simili.

Tra i difetti di temci si evidenzia la sua «giovinezza». Per questo motivo, non supporta tutte le configurazioni hardware e software. Ad esempio, è difficile avviarlo su macOS, e alcune funzionalità non sono disponibili su sistemi con processori ARM. In futuro, la situazione potrebbe cambiare, poiché l'autore sta sviluppando attivamente il progetto, e il numero di stelle su GitHub aumenta gradualmente — di recente, temci è stato persino discusso nei commenti su Hacker News.

uarch-bench

È un'utilità per valutare le prestazioni delle funzionalità a basso livello della CPU, sviluppata dall'ingegnere Travis Downs (Travis Downs). Recentemente, gestisce il suo blog Performance Matters su GitHub Pages, dove parla di strumenti per il benchmarking e altre tematiche correlate. In generale, uarch-bench sta appena iniziando a guadagnare popolarità, ma già viene menzionato dagli utenti 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 della 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, disattiva la funzione Intel Turbo Boost (che aumenta automaticamente la frequenza del processore sotto carico) per garantire risultati di test coerenti.

Attualmente il progetto è nelle fasi iniziali di sviluppo, quindi uarch-bench non ha documentazione dettagliata e potrebbero presentarsi bug nel suo funzionamento — ad esempio, sono note difficoltà nell'avviarlo su Ryzen. Inoltre, sono supportati solo benchmark per architetture x86. L'autore promette di aggiungere più funzionalità in futuro e invita a unirsi allo sviluppo.

likwid

Questo è un insieme di strumenti per valutare le prestazioni dei sistemi Linux con processori Intel, AMD e ARMv8. È stato creato sotto l'egida del Ministero Federale per l'Istruzione e la 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 sul consumo energetico del sistema, e likwid-setFrequencies, che consente di controllare la frequenza della CPU. Puoi trovare l'elenco completo nel repository.

Questo strumento è utilizzato da ingegneri che si occupano di ricerca nel campo dell'HPC. Ad esempio, con likwid lavorando un gruppo di specialisti del Centro di Calcolo Regionale dell'Università di Erlangen-Norimberga (RRZE) in Germania. Questo gruppo partecipa attivamente allo sviluppo di questa suite di strumenti.

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

perf-tools

Questo strumento per l'analisi delle prestazioni dei server Linux ha presentato Brendan Gregg. È uno degli sviluppatori DTrace del framework di tracciamento dinamico per il debugging delle applicazioni in tempo reale.

Alla base di perf-tools ci sono i sottosistemi del kernel perf_events e ftrace. Le loro utilità consentono di analizzare la latenza I/O (iosnoop), tracciare gli argomenti delle chiamate di sistema (unccount, funcslower, funcgraph e functrace) e raccogliere statistiche sui "cache hit" (cachestat). In quest'ultimo caso, il comando è il seguente:

# ./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 a questo strumento si è formato un ampio comunità (quasi 6.000 stelle su GitHub). Ci sono aziende che utilizzano attivamente perf-tools, come ad esempio Netflix. Tuttavia, lo strumento è in fase di sviluppo e modifica (anche se recentemente gli aggiornamenti sono stati abbastanza rari). Quindi, potrebbero verificarsi 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 al codice sorgente su diversi processori. Essa valuta Instructions Per Cycle (IPC) e il carico generato sull'hardware da ogni applicazione.

llvm-mca è stato presentato nel 2018 nell'ambito di un progetto LLVM, dedicato allo sviluppo di un sistema universale per l'analisi, la trasformazione e l'ottimizzazione dei programmi. È noto che gli autori di llvm-mca sono stati ispirati dalla soluzione di analisi delle prestazioni del software IACA di Intel e hanno voluto crearne un'alternativa. Secondo gli utenti, i dati in output dello strumento (la loro formattazione e quantità) ricordano effettivamente IACA — un esempio è disponibile qui. Tuttavia, llvm-mca accetta solo la sintassi AT&T, quindi per lavorarci sarà probabilmente necessario utilizzare dei convertitori.

Di cosa trattiamo nei nostri blog e sui social media:

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

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

Benchmark per server Linux: selezione di strumenti open-source Libri per chi è già nel campo dell'amministrazione di sistemi o sta pensando di iniziare
Benchmark per server Linux: selezione di strumenti open-source Selezione: cinque libri e un corso sulle reti

Benchmark per server Linux: selezione di strumenti open-sourceNoi di 1cloud.ru offriamo un servizio gratuito «hosting DNS». Puoi gestire i record DNS attraverso un unico pannello personale.

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