110 likes | 204 Views
File system benchmark. Massimo Biasotto – INFN LNL. benchmark tools: time + dd. utilizzo del comando unix ‘dd’ per scrivere/leggere files, in combinazione col comando ‘time’ per misurare i tempi esempio di scrittura: if=/dev/zero of=/path/filename
E N D
File system benchmark Massimo Biasotto – INFN LNL
benchmark tools: time + dd • utilizzo del comando unix ‘dd’ per scrivere/leggere files, in combinazione col comando ‘time’ per misurare i tempi • esempio di scrittura: • if=/dev/zero of=/path/filename [massimo@plcn10 massimo]$ time dd if=/dev/zero of=/common_disk2/testfile bs=16k count=10000 10000+0 records in 10000+0 records out 0.02user 2.32system 0:14.27elapsed 16%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (117major+16minor)pagefaults 0swaps
benchmark tools: time + dd • esempio di lettura: • if=/path/filename of=/dev/null [massimo@plcn10 massimo]$ time dd if=/common_disk2/testfile of=/dev/null bs=16k 10000+0 records in 10000+0 records out 0.00user 0.67system 0:00.66elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (111major+19minor)pagefaults 0swaps
benchmark tools: bonnie • semplice da usare: • bonnie –d scratch-dir –s size • misura read, write e rewrite (per char e a blocchi) • misura il numero di random seeks per secondo
bonnie: esempio [massimo@plcn10 massimo]$ bonnie -d /common_disk2 -s 160 -m plcn10 File '/common_disk2/Bonnie.9039', size: 167772160 Writing with putc()...done Rewriting...done Writing intelligently...done Reading with getc()...done Reading intelligently...done Seeker 1...Seeker 2...Seeker 3...start 'em...done...done...done... -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU plcn10 160 10568 29.7 11267 11.8 11223 14.8 50170 100.1 235222 99.1 13744.9 5 8.4
benchmark tools: iozone • più complesso: molte opzioni disponibili e molti parametri configurabili • può eseguire molti test diversi • read, write, random read/write, read-backwards, stride-read, fread, fwrite, pread, pwrite, ecc.. • può misurare i tempi di latenza per l’accesso ad un file a diversi offset • dispone di un ‘automatic mode’ che esegue tutti i test variando la dimensione dei files da 64K a 512M e dei record da 4K a 16M • può generare un output compatibile con Excel per la creazione di grafici
iozone: esempio [massimo@plcn10 massimo]$ ./iozone -s 160m -r 16k -i0 -i1 Run began: Tue Dec 12 13:50:57 2000 File size set to 163840 KB Record Size 16 KB Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bk wd record stride KB reclen write rewrite read reread read write re ad rewrite read fwrite frewrite fread freread 163840 16 3033 7055 536933 536648 iozone test complete.
cosa vogliamo testare? • diverse tipologie di storage: disk servers, dischi distribuiti, NAS, ecc.. • configurazione ottimale di NFS: come influiscono sulle prestazioni i vari parametri (rsize, wsize, RPCNFSDCOUNT, ecc..) • NFS v3 • altri file systems? (Coda, InterMezzo, GFS, ecc...)
come procedere? • definire i tools da usare: dd, bonnie, iozone, altri... • definire i parametri da usare per i test • quali valori misurare? (read, write, reread, %CPU, ecc..) • dimensioni dei files e dei records • la scelta di questi parametri dipenderà dall’utilizzo tipico dell’I/O nelle applicazioni (esiste un “utilizzo tipico”?) • creare uno script che esegua tutta la serie di test di nostro interesse: • automatizzazione delle procedure • uniformità dei risultati