Come si eseguono i test delle prestazioni IO in Linux?Test delle prestazioni IO in Linux
risposta
strumento: fio
link: http://freshmeat.net/projects/fio/
prova disco fisico IO:
./fio examples/disk-zone-profile
set di parametri: sequenziale r/w: rw = leggere o rw = scrivere r casuale/w: rw = randread o rw = randwrite
Il benchmark di IO e file system è un argomento complesso. Nessun singolo strumento di benchmark è valido in tutte le situazioni. Ecco una piccola panoramica su diversi strumenti di benchmarking:
Block bagagli:
- IOMeter - altamente personalizzabile e consente di coordinare più client. Ha bisogno di un PC Windows per l'applicazione di coordinamento. Sviluppato da Intel. Su Linux, prendi i tassi massimi di vecchi (almeno 2006.07.27 e precedenti) con un pizzico di sale perché il metodo di invio non era ottimale.
File System (sintetico):
- FFSB - Flessibile Filesystem Benchmark. Benchmarking molto pulito per Linux. Buona personalizzazione del carico di lavoro. Benchmarking NFS (net-ffsb) un po 'non corretto.
- Filebench - Estremamente potente, ma originariamente sviluppato per Solaris. Il supporto per Linux non è buono.
- sysbench - Principalmente uno strumento di benchmark DB, ma anche strumento di benchmark di base per il filesystem.
- bonnie - Sembra obsoleto.
- bonnie++ - C++ porto di Bonnie. Facile, ma sembra non essere molto personalizzabile.
File System (carico di lavoro):
- Postmark - Simula il comportamento IO di un server di posta. Troppo piccolo per sottolineare i buoni sistemi IO.
Stony Brook University e IBM Watson Labs hanno pubblicato un documento rivista altamente raccomandato nel "Transaction of Storage" su analisi comparativa del file system, in cui si presentano diversi punti di riferimento e le loro punti di forza e di debolezza: A nine year study of file system and storage benchmarking. L'articolo indica chiaramente che i risultati della maggior parte dei benchmark sono almeno discutibili.
Una nota: è legata la programmazione domanda? Forse no, ma forse lo è. Dedico molto tempo all'analisi comparativa delle prestazioni IO dei sistemi che sviluppo. Almeno per me, le domande su come eseguire il benchmarking di queste cose sono strettamente correlate alla programmazione. Per favore: non chiudere tutte le domande che non sono legate allo sviluppo/alla programmazione dal tuo punto di vista. Il punto di vista di altri sviluppatori potrebbe essere diverso.
è necessario specificare cosa si sta testando, altrimenti i parametri di riferimento saranno solo fuorvianti. Ci sono diversi aspetti delle prestazioni IO che è necessario scegliere per ottimizzare e diversi parametri con cui giocare.
I suoi parametri di sistema:
- dispositivo di archiviazione: HDD, SSD (quali?), Raid (quali?)
- file system, la dimensione del blocco, la modalità rivista cache dei file
- , soglie sporchi, quantità della memoria
- IO scheduler, i suoi parametri sintonizzabili
- numero di CPU
- versione del kernel
I suoi parametri di prova:
- di lettura o scrittura delle prestazioni?
- sequenziale o casuale?
- 1 thread o multiplo?
- dimensioni richieste
- ottimizzazione per il throughput o il ritardo della richiesta?
Esiste un programma eccellente per testare l'I/O di I/O di archiviazione di blocchi su Unix. Puoi ottenere una copia su iorate.org.
È in grado di generare un IO misto complesso, inclusi riutilizzo (colpi) e zone calde per il test di archiviazione su più livelli.
iorate.org sembra offline, tuttavia i download sono ancora disponibili su https: //sites.google.com/site/vwiorate/home – Stickley
Date un'occhiata a IOzone: http://www.iozone.org/
Se volete leggere un white paper che illustra l'uso del mondo reale in un cluster HPC, si prega di vedere questo pdf, pagina 36: http://i.dell.com/sites/content/business/solutions/hpcc/en/Documents/Dell-NSS-NFS-Storage-solution-final.pdf
dd if=/dev/sda of=/dev/null
Lascia che funzioni per qualche minuto e fermalo con ctrl + C. Stampa la velocità di trasferimento di lettura del tuo drive/controller. Questa è la massima velocità di lettura che puoi ottenere dal tuo disco.
sysbench
Vedi http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
Esempio
sysbench --test=fileio --file-total-size=150G prepare
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
Si può anche testare CPU, memoria, le discussioni e le prestazioni del server di database,
E 'impressionante.
O test del software scritto in Java: http://www.dacapobench.org/
se avete bisogno di un modo rapido, senza dover installare nulla.Questo è il metodo che uso per scrittura test di velocità:
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
E l'uscita è qualcosa di simile
[email protected]:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s
anche: eliminare il file di prova dopo questo per recuperare lo spazio in più utilizzato
Qualche spiegazione:
bs = block size
count = the no of blocks to be written
Regolare questi parametri per modificare le dimensioni del file scritto secondo le specifiche del server e il tempo che si desidera dedicare alla scrittura.
la velocità di lettura come suggerito già da gtsouk, può essere verificata utilizzando/dev/null come output.
non dimenticarti di sudo rm test quando hai finito! –
- 1. File Linux IO - Prestazioni di multithreading - scrittura su file diversi
- 2. Test delle azioni IO con Monadic QuickCheck
- 3. Test delle prestazioni e profiling
- 4. Test automatico delle prestazioni delle librerie Scala
- 5. Utilità di test delle prestazioni per C++
- 6. test delle prestazioni di un sito web
- 7. Test delle prestazioni asincrone con XCTest
- 8. Test delle prestazioni del browser tramite selenio
- 9. Test delle prestazioni di RabbitMQ/MQTT
- 10. Benchmarking/test delle prestazioni dell'API - REST/SOAP
- 11. Test delle prestazioni utilizzando la struttura xUnit
- 12. Test delle prestazioni del codice PHP
- 13. Concetto di "Contatori delle prestazioni" in Linux/Unix
- 14. Leggere periodicamente i contatori delle prestazioni in linux
- 15. Test dell'unità C++ per il test delle prestazioni (benchmark sintetico)
- 16. Ottimizzazione delle prestazioni per Netty 4.1 su macchina Linux
- 17. Come si eseguono i test delle prestazioni della pagina?
- 18. equivalente per i contatori delle prestazioni Win32 su Linux
- 19. prestazioni Socket su Linux
- 20. Come tracciare le operazioni IO per file in Linux?
- 21. Profili di prestazioni su Linux
- 22. Prestazioni di Linux/perl mmap
- 23. Rails 3.2.11 problema di test delle prestazioni: non so come creare test delle attività: benchmark
- 24. Profilatura delle applicazioni Linux
- 25. Strano comportamento delle prestazioni
- 26. test su spazio su disco in linux
- 27. Eventuali svantaggi delle prestazioni di GC.disable?
- 28. Come configurare RSpec per i test delle prestazioni 'sul lato'
- 29. Libri consigliati per ottimizzazione e test delle prestazioni ASP.NET
- 30. Come automatizzare i test delle prestazioni e integrarli con CI?
+1 - Un buon elenco di strumenti e le transazioni su carta di archiviazione sono un buon riferimento. Un altro strumento potenzialmente utile per il test del file system basato sulla rete (es. NFS) è fstress: http://www.cs.duke.edu/ari/fstress/ –