2009-07-29 19 views

risposta

15

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

32

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.

+1

+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/ –

3

è 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:

  1. dispositivo di archiviazione: HDD, SSD (quali?), Raid (quali?)
  2. file system, la dimensione del blocco, la modalità rivista cache dei file
  3. , soglie sporchi, quantità della memoria
  4. IO scheduler, i suoi parametri sintonizzabili
  5. numero di CPU
  6. versione del kernel

I suoi parametri di prova:

  1. di lettura o scrittura delle prestazioni?
  2. sequenziale o casuale?
  3. 1 thread o multiplo?
  4. dimensioni richieste
  5. ottimizzazione per il throughput o il ritardo della richiesta?
3

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.

+0

iorate.org sembra offline, tuttavia i download sono ancora disponibili su https: //sites.google.com/site/vwiorate/home – Stickley

6
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.

7

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.

+1

non dimenticarti di sudo rm test quando hai finito! –

Problemi correlati