LNL M.Biasotto, Bologna, 13 dicembre File system benchmark Massimo Biasotto – INFN LNL
LNL M.Biasotto, Bologna, 13 dicembre 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]$ time dd if=/dev/zero of=/common_disk2/testfile bs=16k count= records in records out 0.02user 2.32system 0:14.27elapsed 16%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (117major+16minor)pagefaults 0swaps
LNL M.Biasotto, Bologna, 13 dicembre benchmark tools: time + dd esempio di lettura: if=/path/filename of=/dev/null massimo]$ time dd if=/common_disk2/testfile of=/dev/null bs=16k records in records out 0.00user 0.67system 0:00.66elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (111major+19minor)pagefaults 0swaps
LNL M.Biasotto, Bologna, 13 dicembre 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
LNL M.Biasotto, Bologna, 13 dicembre bonnie: esempio massimo]$ bonnie -d /common_disk2 -s 160 -m plcn10 File '/common_disk2/Bonnie.9039', size: 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 Sequential Output Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- -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 plcn
LNL M.Biasotto, Bologna, 13 dicembre 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
LNL M.Biasotto, Bologna, 13 dicembre iozone: esempio massimo]$./iozone -s 160m -r 16k -i0 -i1 Run began: Tue Dec 12 13:50: Run began: Tue Dec 12 13:50: File size set to KB File size set to KB Record Size 16 KB Record Size 16 KB Time Resolution = seconds. Time Resolution = seconds. Processor cache size set to 1024 Kbytes. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. File stride size set to 17 * record size. random random bk random random bk wd record stride KB reclen write rewrite read reread read write re KB reclen write rewrite read reread read write re ad rewrite read fwrite frewrite fread freread iozone test complete.
LNL M.Biasotto, Bologna, 13 dicembre iozone: grafico Excel
LNL M.Biasotto, Bologna, 13 dicembre iozone: tempi di latenza
LNL M.Biasotto, Bologna, 13 dicembre 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...)
LNL M.Biasotto, Bologna, 13 dicembre 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