Pomiar wydajności I/O

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Artykuł ten zawiera podstawowe informacje odnośnie pomiaru wydajności I/O. Temat ten jest bardzo złożony i obszerny, staramy się tutaj poruszyć najważniejsze podstawowe informacje.

Podstawy

Ogólne informacje

Proszę zwrócić uwagę na przejrzystość testów. Sugerujemy dokładne udokumentowanie całego środowiska testowego.

Ze strony sprzętowej do testu należą:

  • Płyta główna - wersja BIOS-u
  • Procesory
  • RAM
  • (jeśli wykorzystywany) kontroler RAID - wersja firmware'u
  • Nośniki danych (HDD, SSD, ...) - wersja firmware'u
  • ...

Ze strony oprogramowania:

  • Konfiguracja BIOS-u (najlepiej Load Defaults i następująca dokumentacja zmian w konfiguracji)
  • System operacyjny z szczegółowymi informacjami odnośnie instalacji, wersje oprogramowania itd.
  • (jeśli wykorzystywany) dokładna konfiguracja kontrolera RAID (RAID-Level, konfiguracja cache'u, ...)
  • Narzędzia testowe - dokładna wersja
  • ...

Pomiar wydajności dysków SSD i pamięci flash

  • taka sama sytuacja wyjściowa: Wydajność zapisu na dyskach SSD i pamięci flash może się zmieniać w zależności od poziomu zapełnienia medium (vide Solid State Drive - Zapis. Prawie w pełni zapisane SSD cechują się najczęściej niższą wydajnością zapisu niż puste SSD, które zostało przez Secure Erase wcześniej opróżnione. Dlatego podczas pomiaru należy zwrócić uwagę na to, żeby SSD zostało przez Secure Erase całkowicie opróżnione lub zapisane określoną ilością danych.
  • taka sama konfiguracja cache'a: Podczas porównania kilku dysków SSD należy zwrócić uwagę na możliwie identyczną konfigurację cache'a (vide Solid State Drive - Bufor DRAM (Cache)).
  • testy z losowymi danymi: Niektóre kontrolery SSD są wyposażone w kompresje danych. Test z danymi zerowymi może prowadzić w tym przypadku do wysokiego wyniku pomiaru, który z prawdziwymi danymi nie zostanie osiągnięty. Sugerujemy dlatego przeprowadzanie testów z losowymi danymi (vide Solid State Drive - kompresja danych).

Pomiar wydajności dysków twardych

  • taka sama sytuacja wyjściowa: Przy stałej prędkości obrotowej, przepustowość na zewnętrznej krawędzi talerza jest większa niż na wewnętrznej. Dyski są zapisywane od zew. do wew., wydajność na początku jest wyższa niż na końcu dysku. W porównaniu kilku dysków należy zwrócić uwagę, aby porównywany był ten sam obszar dysku. Najłatwiej przeprowadzić test na początkowym obszarze dysku. Jeżeli jednak raczej końcowy obszar (a więc wew. ścieżki dysku) ma zostać przetestowany, to test należy rozpocząć parametrem offset narzędzi testowych np. zawsze przy 90% pojemności danego dysku.
    Przykład: Western Digital WD5002ABYS-01B1B0
    Początek obszaru danych:
    • 111 MByte/s (test przeprowadzony poprzez fio --filename=/dev/sdd --direct=1 --rw=read --bs=1m --size=5G --offset=0G --name=file1)
    • 116 MByte/s (test przeprowadzony poprzez dd if=/dev/sdd of=/dev/null bs=1M count=5120 iflag=direct)
    Koniec obszaru danych:
    • 62,8 MByte/s (test przeprowadzony poprzez fio --filename=/dev/sdd --direct=1 --rw=read --bs=1m --size=5G --offset=460G --name=file1)
    • 65,8 MByte/s (test przeprowadzony poprzez dd if=/dev/sdd of=/dev/null bs=1M count=5120 skip=471040 iflag=direct)
Uwaga: Jeżeli potrzebna jest wyższa wydajność I/O to korzystanie jedynie z początkowego obszaru większego dysku może być sensownym rozwiązaniem. W przypadku zapotrzebowania na np. 250 GB może zostać wykorzystany dysk o pojemności 1 TB, z którego będzie wykorzystywane jedynie początkowe 250 GB. Co zwiększa średnią przepustowość i ilość możliwych IOPS (= niższy czas dostępu), głowica dysku nie musi pokonać dużej odległości do wew. krawędzi dysku.[1]
  • taka sama konfiguracja cache'u zapisu dysków: W porównaniu kilku dysków należy zwrócić uwagę, aby miały identyczną konfigurację cache'a.
  • brak bieżących testów SMART: Dyski twarde mogą wykonywać autotesty. Testy te mogą zostać rozpoczęte np. przez smartctl -t TEST. Takie autotesty mogą mieć wpływ na wynik równolegle bieżących testów wydajności I/O. Dlatego należy zwrócić uwagę, aby takie testy nie odbywały się w trakcie testów wydajności I/O.
  • brak bieżących operacji w tle takich jak Pre-Scan firmy Seagate: Nowsze dyski SAS firmy Seagate przeprowadzają automatycznie po pierwszym zapisie sektora Media Scan. Przez co rozpoznane zostają potencjalne uszkodzenia medium. Wydajność zapisu spada przy tym o około 50%. W przypadku tych dysków zalecane jest całkowite zapisanie dysku (np. przez dd) przed przeprowadzaniem testów lub produktywnym wykorzystaniem. W ten sposób pre scan jest w pełni zakończony i nie ma negatywnego wpływu na wydajność. Uwaga: dyski te w trybie spoczynku (idle) przeprowadzaja tak zwany Background Media Scan.[2][3]

Pomiar z kontrolerami RAID

W przypadku pomiaru wydajności dysków HDD lub SSD w macierzy RAID, pozy powyżej wymienionymi uwagami należy uwzględnić również poniższe:

  • brak bieżących operacji w tle: Podczas pomiaru na kontrolerze w tle nie mogą być przeprowadzane żadne operacje.Inicjalizacja, weryfikacja itd., muszą wcześniej zostać zakończone.

Przypadki testowe

Przepustowość

W testach przepustowości (Throughput) z reguły mierzona jest maks. przepustowość podczas dostępu sekwencyjnego (zwane streaming I/O lub sequential I/O).

Interesująca przy tym jest:

  • Przepustowość odczytu w MByte/sec
  • Przepustowość zapisu w MByte/sec

Przykłady testów pomiaru przepustowości znajdują się tutaj: fio - studia przypadków.

IOPS

Testem IOPS (Input/Outputs per Second) mierzona jest ilość możliwych operacji wejścia/wyjścia w przeciągu sekundy. Z reguły pomiar przeprowadzany jest w scenariuszu worst-case (Random Read IOPS i Random Write IOPS). Jest to losowy dostęp (random I/O), przy czym każdy dostęp przesyła bardzo mało danych.

Na podstawie IOPS może zostać określony średni czas dostępu danego dysku. Średnia jest odwrotnie proporcjonalna do IOPS. 71 IOPS odpowiada w ten sposób ok. 0,001408 s = 14,08 ms średniego czasu dostępu.

Średni czas dostępu dysku składa się z:

  • seek time (czas przejścia do następnej ścieżki)
  • latency (opóźnienie - czas połowy obrotu talerza)
  • controller overhead (opóźnienie polecenia, zazwyczaj może zostać pominięte)
  • transfer time (czas transferu, w przypadku testów worst-case może zostać pominięty, jest w przeciwieństwie do seek time und latency bardzo mały)

Przykłady testów IOPS znajdują się w: fio - studia przypadków.

Dalsze informacje o IOPS (I/Os per Second) znajdują się na:

Odnośniki

  1. http://www.zdnet.com/blog/ou/how-higher-rpm-hard-drives-rip-you-off/322
  2. Product Manual Constellation ES Series SAS Kapitel 8.4 Background Media Scan und Kapitel 8.5 Media Pre-Scan
  3. Platten-Karussell (c't 15/2010, strona 142)

Dalsze informacje

Powiązane artykuły

Aktywacja technologii wirtualizacji sprzętowej Intel VT
Dyski SSD M.2 i mSATA w serwerach Thomas-Krenn
Montaż serwerów Supermicro w szafie rackowej