Powiedzmy, że jako administrator IT dostajesz zadanie rozbudowy, migracji lub wdrożenia nowej infrastruktury do magazynowania danych np. serwer iSCSI dla aplikacji serwerowej, która ciągle się rozrasta jak Microsoft Exchange Server lub VMware ESX Hypervisor. Pytanie brzmi – jak administrator IT ma określić  wydajność nowego serwera, który sprosta zapotrzebowaniu oprogramowania na nim uruchomionego? Ostatnio sam borykałem się z takim samym problemem, jeden z oddziałów firmy rozwijał się tak szybko, że pięcioletni serwer już nie był w stanie zaspokoić ich wymagań – nie mogli się zdecydować między RS2212RP+ i RS3412RPxs. Oba modele oferowały więcej przestrzeni dyskowej niż było im potrzebne – chodziło o wydajność. Po analizie ich potrzeb stwierdziłem, że RS2212RP+ w zupełności wystarczy. W tym wpisie postaram się opisać IOP – jeden z najważniejszych parametrów wydajności w środowisku serwerów.

Co to właściwie są te IOPS?
Dawniej – wydajność serwerów określano tylko przez przepustowość mierzoną przy pomocy jednego komputera. Przepustowość mierzy średnią liczbę megabajtów przesyłanych w określonym czasie dla zadanego rozmiaru pliku. Przepustowość jednak nie jest miarodajnym parametrem do ustalania czy dany serwer jest wydajny czy nie – a to dlatego, że przez większość czasu gdy serwer pracuje, otrzymuje zazwyczaj wiele zapytania wysłanych przez grupę użytkowników dotyczących zapisania lub odczytania dużej ilości małych plików – a nie jak to zakłada definicja przepustowości, że jeden komputer zapisuje lub odczytuje jeden duży plik. Zdolność obsługi przez serwer zapytań dla dużej ilości małych plików potrafi określić tylko bardziej zaawansowany benchmark jakim jest IOPS.

IOPS (Input/Output Operations per Second) mierzy ilość operacji na sekundę, które serwer może obsłużyć. IOPS oferuje różne sposoby pomiaru aktywności, może np. być używany do symulacji zachowania wielu użytkowników – wtedy wartość IOPS można porównać do ilości użytkowników wysyłających zapytania do macierzy w zadanym czasie jaką serwer jest w stanie obsłużyć.

Jak określić ile IOPS potrzebujemy ?
Administrator IT może określić ile IOPS obecnie wykorzystują jego aplikacje, co jest najlepszą praktyką na określenie ilości potrzebnych IOPS polecaną przez większość dostawców tego typu rozwiązań. Najpierw oceń obecnie wykorzystywane zasoby przez okres około 30 dni np. podczas początku dnia roboczego, w połowie dnia, pod koniec dnia i gdy wykonywane są kopie zapasowe. Dzięki takim pomiarom będzie prościej odpowiedzieć na pytanie ile IOPS wykorzystuje nasza aplikacja. Poniżej kilka przykładów.

Microsoft Windows

Stacja robocza Windows średnio potrzebuje 18 IOPS @ 64K, wynik ten osiągnięto przy uruchomionych kilku aplikacjach biurowych, kilku otwartych zakładkach w przeglądarce internetowej i kilku otwartych aplikacjach multimedialnych.

VMware ESXi

Produkcyjny serwer VMware – uwagę, należy zwrócić na to, że wybrany obraz maszyny wirtualnej nie wymaga dużej przepustowości (Odczyt 11.3MB/Sec , Zapis 1.6MB/Sec) – tylko sporej wartości IOPS.

Szacowanie wymaganych wydajności IOPS 
Poniżej zebrano informacje z różnych stron internetowych, które mogą pomóc oszacować liczbę wymaganych IOPS. Należy jednak pamiętać, że te informacje są przydatne do szacunkowego określenia liczby IOPS, ale nigdy nie zastąpią własnoręcznie przeprowadzonych testów na własnym serwerze z uruchomionymi na nim aplikacjami.

  • Microsoft Exchange 2010 Server
    • Przy 5000 użytkowników wysyłających/odbierających 500 maili dziennie szacunkowo potrzebujemy około 3000 IOPS
  • Microsoft Exchange 2003 Server
    • Przy 5000 użytkowników wysyłających 60 i odbierających 150 maili dziennie szacunkowo potrzebujemy około 7500 IOPS
  • Microsoft SQL 2008 Server na VMware
    • 3557 SQL TPS generuje 29,000 IOPS
  • Various Windows Servers
    • Community Discussion: między 10-40 IOPS na Serwer
  • Oracle Database Server na VMware
    • 100 Oracle TPS generuje 1,200 IOPS

Jak mierzyć IOPS
IOPS  może być mierzone jako 100% Odczyt lub 100% Zapis; jednak rzadko ma to miejsce w środowisku produkcyjnym. Mieszane wartości mogą być mierzone, przy pomocy typowej wielkości IOP (lub wielkość bloku) z 4KB, aż do 32KB. Liczba IOPS zależy od wielkości IOP, mniejsza wartość IOP daje większą wartość IOPS. Natomiast duża wartość IOP daje lepszą przepustowość, ale mniejszą wartość IOPS.

Podsumowanie
Planowanie wymaganej wydajności może być trudnym zadaniem, zważywszy na to, że istnieją narzędzia do testowania IOPS na istniejącym serwerze – proces ten jest lekko uproszczony dla administratorów IT w małych firmach. Krótko podsumowując – najlepszym sposobem, aby określić ile IOPS jest wymaganych to logowanie przez okres 30 dni wydajności na aktualnie uruchomionym serwerze. Po zidentyfikowaniu ilości wymaganych IOPS wybranie prawidłowego serwera NAS stanie się o wiele prostsze. Dobrą praktyką jest dodanie marginesu 20% to oszacowanej ilości IOPS.