2008/11/25

Liczymy, liczymy ...

W poprzednim wpisie wspomniałem o average random IOPS dla dysku twardego. Z tego względu, że z oczywistych powodów parametr ten nie jest podawany w żadnych folderach, broszurach itp. warto wiedzieć jak go policzyć samodzielnie. 

Potrzebujemy do tego informacji, które są jawnie publikowane przez producentów: RPM dysku (ilość obrotów na minutę) oraz średniego czasu przesunięcia/pozycjonowania głowicy (seek time). Weźmy dysk Seagate Cheetah 15k.6 - 15000 RPM, 3,65 ms średni seek time. Liczymy ile trwa pół obrotu dysku (o tyle bowiem średnio dysk musi się zakręcić, aby dotrzeć do wskazanego sektora z danymi):

1/(15000/60)/2 = 2ms

Dodajemy do tego średni seek time (jest to wartość średnia bowiem seek time jest różny zależnie od tego czy operacją jest odczyt, czy też zapis):

2 ms + 3,65 ms = 5,65 ms

W ten sposób uzyskujemy czas jaki średnio potrzebuje dysk na obsługę jednej losowej operacji i/o. Teraz wystarczy tylko wyliczyć ile takich operacji jest w stanie wykonać w ciągu sekundy i mamy nasze średnie IOPS dla operacji losowych:

1/5,65 ms =~ 174 IOPS

Niska wartość tego parametru wynika z opóźnień mechanicznych elementów dysku - ruch głowicy i obroty dysku.  I to właśnie jest największą wadą dysków twardych. Nie można jej wyeliminować. Co więcej nie ma pomysłu jak w dysku zmniejszyć opóźnienia mechaniczne. Bez tego ilość IOPS, wartość mająca zasadnicze znaczenia dla wydajności HDD, nie wzrośnie.

Poniżej przykład kilka dysków z wyliczonym IOPS i wielkości transferów w kB dla różnych wielkości bloku.







Wcześniej do przykładów brałem dyski Hitachi. Okazało się jednak, że ta firma cwanie publikuje tylko seek time dla operacji odczytu - krótszy niż dla zapisu.

Brak komentarzy: