Stripe-unit size for SQL Server

In questi giorni sto installando e configurando un server IBM destinato ad un nostro cliente. Si tratta della sostituzione del server che ospita l’istanza SQL Server, il sistema informativo aziendale ed il relativo database OLTP. Occasione ghiotta per aggiornare la versione del software gestionale e installare SQL Server 2008 Enterprise Edition (x64).

Dopo aver installato SQL Server 2008 Enterprise Edition mi sono accorto che sui volumi dedicati ai file di database, sul RAID 10, la dimensione dello Stripe era impostata a 256K. La dimensione dell’unità di Stripe è un attributo del gruppo di dischi appartenenti ad una configurazione RAID e rappresenta l’unita minima di archiviazione nelle configurazioni RAID-0, RAID-10, RAID-5, o RAID-6 (Understanding stripe-unit size).

Una singola operazione di I/O eseguita in un controller array si trasforma in più operazioni di I/O se la richiesta attraversa i confini di una o più unità di Stripe. L'effetto cumulativo di queste operazioni multiple di I/O può contribuire al sostanziale degrado delle prestazioni.

Ricordando le indicazioni di Microsoft, ribadite da Davide Mauri nel post Disk Sector Alignment WhitePaper, non ho potuto resistere Smile alla tentazione di rifare il RAID 10 per impostare a 64K la dimensione dello Stripe:

Il corretto dimensionamento dell’unità di Stripe rappresenta una delle Best Practices relative al Disk Partition Alignment per evitare scenari (problemi) di disallineamento dei settori dei dischi (disk sector misalignment).

 

Approfondimenti:

 

Published venerdì 24 luglio 2009 22.21 by sgovoni

Comments

No Comments