<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Software-RAID HOWTO: Prestazioni</TITLE> <LINK HREF="Software-RAID-HOWTO-8.html" REL=next> <LINK HREF="Software-RAID-HOWTO-6.html" REL=previous> <LINK HREF="Software-RAID-HOWTO.html#toc7" REL=contents> </HEAD> <BODY> <A HREF="Software-RAID-HOWTO-8.html">Avanti</A> <A HREF="Software-RAID-HOWTO-6.html">Indietro</A> <A HREF="Software-RAID-HOWTO.html#toc7">Indice</A> <HR> <H2><A NAME="s7">7. Prestazioni</A></H2> <P>Questa parte contiene un certo numero di benchmark di un sistema reale che usa il software RAID. <P>I benchmark sono stati fatti con il programma <CODE>Bonnie</CODE> e ogni volta con file grandi due o più volte la dimensione della RAM fisica presente sulla macchina. <P>I benchmark misurano <EM>solo</EM> la larghezza di banda (bandwidth) in ingresso e in uscita su un solo grande file. Questa è una cosa interessante da conoscere, se siamo interessati al massimo indice di trasferimento (throughput) per scritture/letture di grandi quantità di dati. In ogni caso, questi numeri ci dicono poco delle prestazioni dell'array se esso fosse usato come un "news spool", un web-server, ecc. Teniamo sempre in mente, che i numeri dei benchmark sono il risultato dell'esecuzione di un programma ``sintetico''. Pochi dei programmi che appartengono alla vita reale fanno quello che fa <CODE>Bonnie</CODE> e, sebbene questi numeri di I/O siano interessanti da guardare, non sono indicativi delle prestazioni dei programmi reali. Non troppo almeno. <P>Per ora ho solo i risultati ottenuti sulla mia macchina. Il sistema è: <UL> <LI>Doppio Pentium Pro 150 MHz</LI> <LI>256 MB RAM (60 MHz EDO)</LI> <LI>Tre IBM UltraStar 9ES 4.5 GB, SCSI U2W</LI> <LI>Adaptec 2940U2W</LI> <LI>Un IBM UltraStar 9ES 4.5 GB, SCSI UW</LI> <LI>Adaptec 2940 UW</LI> <LI>Kernel 2.2.7 con le RAID patch</LI> </UL> <P>I tre dischi U2W pianterebbero il controller U2W, and il disco UW ingolferebbe il controller UW. <P>Sembra impossibile instradare più di 30 MB/s di dati attraverso i bus SCSI del sistema usando o meno il RAID. Quello che credo è che, siccome il sistema è piuttosto vecchio, sia la banda passante della memoria a mancare, e questo limita quello che può essere inviato attraverso un controller SCSI. <P> <H2><A NAME="ss7.1">7.1 RAID-0</A> </H2> <P><B>La lettura</B> è un <B>"Sequential block input"</B>, e <B>la scrittura</B> è un <B>"Sequential block output"</B>. La dimensione del file è stata di 1 GB per tutti i test. I test sono stati fatti in modalità singolo utente (single user). Il driver SCSI è stato configurato per non usare il "tagged command queuing". <P> <CENTER><TABLE BORDER><TR><TD> <BR> Chunk size </TD><TD> Block size </TD><TD> Read KB/s </TD><TD> Write KB/s </TD></TR><TR><TD> </TD></TR><TR><TD> 4k </TD><TD> 1k </TD><TD> 19712 </TD><TD> 18035 </TD></TR><TR><TD> 4k </TD><TD> 4k </TD><TD> 34048 </TD><TD> 27061 </TD></TR><TR><TD> 8k </TD><TD> 1k </TD><TD> 19301 </TD><TD> 18091 </TD></TR><TR><TD> 8k </TD><TD> 4k </TD><TD> 33920 </TD><TD> 27118 </TD></TR><TR><TD> 16k </TD><TD> 1k </TD><TD> 19330 </TD><TD> 18179 </TD></TR><TR><TD> 16k </TD><TD> 2k </TD><TD> 28161 </TD><TD> 23682 </TD></TR><TR><TD> 16k </TD><TD> 4k </TD><TD> 33990 </TD><TD> 27229 </TD></TR><TR><TD> 32k </TD><TD> 1k </TD><TD> 19251 </TD><TD> 18194 </TD></TR><TR><TD> 32k </TD><TD> 4k </TD><TD> 34071 </TD><TD> 26976 </TD></TR></TABLE></CENTER> <P>a questo, sembra che la dimensione del chunk non faccia molta differenza. Comunque, la dimensione del blocco dell'ext2fs dovrebbe essere più grande possibile, quindi 4 KB (ovvero la dimensione della pagina) sui sistemi IA-32. <P> <H2><A NAME="ss7.2">7.2 RAID-0 con TCQ</A> </H2> <P>Questa volta il driver SCSI è stato configurato per utilizzare il "tagged command queuing", con una profondità della coda di 8. Per il resto tutto come prima. <P> <CENTER><TABLE BORDER><TR><TD> <BR> Chunk size </TD><TD> Block size </TD><TD> Read KB/s </TD><TD> Write KB/s </TD></TR><TR><TD> </TD></TR><TR><TD> 32k </TD><TD> 4k </TD><TD> 33617 </TD><TD> 27215 </TD></TR></TABLE></CENTER> <P>Nessun altro test è stato fatto. TCQ sembra incrementare un poco le prestazioni in scrittura, ma in realtà non è che ci sia poi tutta questa differenza. <P> <H2><A NAME="ss7.3">7.3 RAID-5</A> </H2> <P>L'array è stato configurato per lavorare in modalità RAID-5, dei test simili ai precedenti sono stati fatti. <P> <CENTER><TABLE BORDER><TR><TD> <BR> Chunk size </TD><TD> Block size </TD><TD> Read KB/s </TD><TD> Write KB/s </TD></TR><TR><TD> </TD></TR><TR><TD> 8k </TD><TD> 1k </TD><TD> 11090 </TD><TD> 6874 </TD></TR><TR><TD> 8k </TD><TD> 4k </TD><TD> 13474 </TD><TD> 12229 </TD></TR><TR><TD> 32k </TD><TD> 1k </TD><TD> 11442 </TD><TD> 8291 </TD></TR><TR><TD> 32k </TD><TD> 2k </TD><TD> 16089 </TD><TD> 10926 </TD></TR><TR><TD> 32k </TD><TD> 4k </TD><TD> 18724 </TD><TD> 12627 </TD></TR></TABLE></CENTER> <P>Ora, sia la dimensione del chunk che quella del blocco del filesystem sembrano effettivamente fare la differenza. <P> <H2><A NAME="ss7.4">7.4 RAID-10</A> </H2> <P>Un array RAID-10 è composto da ``mirrored stripes'', ovvero, un array RAID-1 di due array RAID-0. La chunk-size è la dimensione del chunk sia dell'array RAID-1 che di quello RAID-0. Non ho compiuto dei test nel caso in cui le due dimensioni del chunk differiscano, per quanto sia perfettamente lecito. <P> <CENTER><TABLE BORDER><TR><TD> <BR> Chunk size </TD><TD> Block size </TD><TD> Read KB/s </TD><TD> Write KB/s </TD></TR><TR><TD> </TD></TR><TR><TD> 32k </TD><TD> 1k </TD><TD> 13753 </TD><TD> 11580 </TD></TR><TR><TD> 32k </TD><TD> 4k </TD><TD> 23432 </TD><TD> 22249 </TD></TR></TABLE></CENTER> <P>Nessun altro test è stato fatto. La dimensione del file era 900MB, perché le quattro partizioni coinvolte erano da 500 MB ognuna, il che non permetteva di avere spazio per un file da 1 GB in questa configurazione (RAID-1 su due array da 1000MB). <P> <P> <HR> <A HREF="Software-RAID-HOWTO-8.html">Avanti</A> <A HREF="Software-RAID-HOWTO-6.html">Indietro</A> <A HREF="Software-RAID-HOWTO.html#toc7">Indice</A> </BODY> </HTML>