Testy wydajnościowe pamięci masowej w VMware Cloud Director od GigaCloud

Ten artykuł to piąty z cyklu materiałów, w których szczegółowo przyglądam się funkcjonalnościom i możliwościom rozwiązania VMware Cloud Director oferowanego przez GigaCloud. Moim celem jest przeanalizowanie poszczególnych komponentów tej platformy oraz pokazanie, jak można je wykorzystać w wybranych aspektach codziennej pracy z chmurą opartej na tej technologii. Każdy artykuł będzie się koncentrował na innym aspekcie VMware Cloud Director – od tworzenia maszyny wirtualnej, testy wydajnościowe, przez backup, migrację aż po awaryjne odtwarzanie (DR).

Zapraszam do śledzenia kolejnych wpisów z tej serii, które będą pojawiać się w najbliższym czasie:

  1. Przegląd środowiska VMware Cloud Director w Gigacloud.
  2. Przykładowa konfiguracja środowiska przez GUI (pierwsza maszyna).
  3. Przykładowa konfiguracja środowiska przez IaC (Terraform i wiele maszyn).
  4. Testy wydajnościowe łącza internetowego oferowanego przez providera.
  5. Testy wydajnościowe wdrożonych maszyn dostępnych dysków.
  6. Weryfikacja i konfiguracja funkcji kopii zapasowych od Veeam udostępnionych na platformie.
  7. Migracja do VMware Cloud Provider przy pomocy VMware Cloud Director Availability
  8. Awaryjne odtwarzanie do centrum danych przez VMware Cloud Director Availability

Wprowadzenie do zakresu bieżącego artykułu

W poprzednich artykułach omówiłem ogólny przegląd środowiska VMware Cloud Director oraz proces tworzenia pierwszej maszyny wirtualnej za pomocą interfejsu graficznego (GUI) jak i dalsze wdrożenie na większą skalę poprzez terraform. Kontynuując tę serię, jako kolejny punkt zaraz po testowaniu łącza internetowego skupię się na próbie wydajnościowej dysków w zależności od używanego “storage policy”.

Wstęp

Testy wydajnościowe są kluczowym elementem weryfikacji infrastruktury IT po wdrożeniu maszyn wirtualnych. Sprawdzenie wydajności połączenia sieciowego czy też systemu pamięci masowej pozwala uniknąć problemów związanych z opóźnieniami, niską przepustowością i nieefektywnym zarządzaniem zasobami. W niniejszym artykule zostaną przedstawione testy, które pozwolą ocenić jakość połączenia internetowego oraz wydajność dysków w środowisku wirtualnym.


Testy wydajnościowe pamięci masowej przy użyciu narzędzia Iometer

Iometer to jedno z popularniejszych narzędzi do testowania wydajności pamięci masowej, które pozwala na przeprowadzenie dokładnych testów operacji wejścia/wyjścia (I/O) w różnych środowiskach. Dzięki Iometer możemy ocenić, jak różne ustawienia pamięci masowej wpływają na wydajność dysków, w tym na IOPS (operacje wejścia/wyjścia na sekundę), przepustowość (throughput), latencję (opóźnienia) oraz inne parametry. Poniżej przedstawiam szczegółowy opis testów, które można wykonać za pomocą Iometer.


1. Przygotowanie do testów z Iometer

Aby rozpocząć testy, należy przygotować środowisko Iometer:

  • Instalacja Iometer: Należy pobrać i zainstalować Iometer na maszynie, której pamięć masowa będzie testowana. Może to być zarówno system lokalny, jak i zdalna maszyna wirtualna.
  • Wybór typu testu: Iometer pozwala na testowanie zarówno dysków lokalnych, jak i zdalnych, a także na przeprowadzenie testów dla różnych typów obciążeń (np. odczyt, zapis, mieszane operacje).
  • Konfiguracja parametru testowego: Przed rozpoczęciem testu, ważne jest skonfigurowanie parametrów takich jak:
    • Rozmiar bloku danych (np. 4K, 64K),
    • Typ operacji (odczyt, zapis, odczyt/zapis losowy, odczyt/zapis sekwencyjny),
    • Liczba wątków (threads) i wielkość obciążenia.
  • W naszym scenariuszu testy wykonujemy na dyskach leżących na pamięci masowej opisanej przez polisę “ClassFastSSD”, która ma limit do 20.000 IOPS. Celowo pamięć masowa opisana jako “ClassSSD” została pominięta.


2. Testy losowego i sekwencyjnego dostępu

Iometer pozwala na przeprowadzenie testów losowego i sekwencyjnego dostępu do dysku, które różnią się pod względem wymagań i obciążenia:

2.1. Test losowego dostępu (Random I/O)

Testowanie losowego dostępu to jeden z najważniejszych testów, który pozwala ocenić, jak dysk radzi sobie z małymi operacjami I/O wykonywanymi w różnych miejscach na dysku.

  • Testy losowego odczytu: Test polega na wykonywaniu losowych odczytów danych z różnych miejsc na dysku. Wartości IOPS (operacje wejścia/wyjścia na sekundę) oraz średni czas odpowiedzi są głównymi wynikami tego testu.

    • Przykładowa konfiguracja:
      • Rozmiar bloku: 4 KB
      • Wzór operacji: losowy odczyt (random read) Specifikacja: 4KiB, 0% Read; 100% random
      • 2 workery
      • # of Outstanding IO = 10

        100% losowego odczytu

        Dochodzimy tutaj do maksymalnych wartości ograniczanych przez infrastrukturę prawie 20000 IOPS

  • Testy losowego zapisu: Podobnie jak odczyt, losowy zapis sprawdza, jak dysk radzi sobie z zapisem małych bloków danych w różnych miejscach na dysku.

    • Przykładowa konfiguracja:
      • Rozmiar bloku: 4 KB
      • Wzór operacji: losowy zapis (random write)


2.2. Test sekwencyjnego dostępu (Sequential I/O)

Testowanie sekwencyjnego dostępu jest bardziej odpowiednie do obciążeń wymagających dużych transferów danych, takich jak praca z dużymi plikami.

  • Testy sekwencyjnego odczytu: Sprawdzają, jak dysk radzi sobie z odczytem dużych bloków danych w jednym ciągłym obszarze (czyli po kolei, bez losowych skoków).

    • Przykładowa konfiguracja:
      • Rozmiar bloku: 4 KB
      • Wzór operacji: sekwencyjny odczyt (sequential read)
  • Testy sekwencyjnego zapisu: Sprawdzają wydajność zapisu dużych plików w jednym ciągłym obszarze.

    • Przykładowa konfiguracja:
      • Rozmiar bloku: 4 KB
      • Wzór operacji: sekwencyjny zapis (sequential write)

3. Testy mieszane (Mixed I/O)

W rzeczywistych środowiskach często występuje połączenie operacji odczytu i zapisu. Iometer pozwala na tworzenie mieszanych obciążeń, w których część operacji to odczyt, a część zapis.

  • Testy mieszane odczytu i zapisu: Można skonfigurować Iometer do równoczesnego przeprowadzania operacji odczytu i zapisu w jednym teście, co dokładnie odwzorowuje obciążenie systemu w zastosowaniach bazodanowych.
    • Przykładowa konfiguracja:
      • Rozmiar bloku: 4 KB
      • Proporcja odczyt/zapis: 75/25


4. Testy obciążenia

Iometer umożliwia również symulację obciążenia, które odpowiada rzeczywistym scenariuszom pracy z dyskami. Dzięki symulacji dużej liczby równoczesnych wątków można sprawdzić, jak dysk zachowa się przy dużym natężeniu operacji I/O:

  • Wzrost liczby wątków: Iometer pozwala na symulowanie sytuacji, w której wiele aplikacji równocześnie odczytuje lub zapisuje dane na tym samym dysku, co może ujawnić ewentualne wąskie gardła w wydajności.
  • Zwiększenie liczby workerów do 30
  • Przeprowadzone zostały wszystkie możliwe dostępne w Iometer scenariusze.

5. Analiza wyników

Po przeprowadzeniu testów, Iometer generuje szczegółowe raporty, które zawierają:

  • (operacje wejścia/wyjścia na sekundę) – liczba operacji, które dysk jest w stanie przeprowadzić w ciągu jednej sekundy.
  • Total MBs per Second  – łączna ilość danych przesyłanych w danym czasie
  • Average I/O Response (ms) tzw. latencja – średni czas odpowiedzi dla operacji I/O (ms).
  • % CPU Utilization (total) – użycie procesora w czasie trwania testu
  • Total Error Count (Wskaźnik błędów) – liczbę błędów lub strat danych, które mogą wystąpić w trakcie testów.

6. Wnioski

Testy Iometer pozwalają na kompleksową ocenę wydajności pamięci masowej, pomagając w identyfikacji problemów takich jak niska liczba IOPS, wysokie opóźnienia czy niestabilność wydajności przy dużych obciążeniach. Dobrze przeprowadzony test pozwala na dostosowanie polityk pamięci masowej oraz wybór odpowiednich dysków w zależności od wymagań aplikacji i obciążeń. Tyle przynajmniej z teorii.

Celem tego testu było sprawdzenie, czy oferowane przez GigaCloud dyski wysokiej klasy opisanej jako “ClassFastSSD” faktycznie spełniają swoje zadanie przy różnych typach dostępu do danych. Testowałem dostęp sekwencyjny w trybie zapisu i odczytu, tak samo dla dostępu losowego, który występuje w przypadku baz danych. Praktycznie każdy z testów doprowadził mnie do tego, iż infrastruktura jest w stanie dostarczyć tyle IOPSów ile zapowiada. Zauważalny był dopiero spadek poniżej 18000 IOPS jeśli bardziej obciążyliśmy maszyną równoległymi 30 workerami, które wykonywały losowe scenariusze dostępu danych.

Opis testu Total I/Os per Second
Test losowego dostępu (Random I/O) – odczyt 19848.78
Test losowego dostępu (Random I/O) – zapis 19999.14
Test sekwencyjnego dostępu (Sequential I/O) – odczyt 19986.28
Test sekwencyjnego dostępu (Sequential I/O) – zapis 20000.52
Testy mieszane (Mixed I/O) 19802.16
Testy obciążenia 17279.75

Wnioskuję, zatem że dyski dostarczane są w stanie spełnić wymagania. Natomiast uważam, że przed decyzją czy dana infrastruktura jest dobra dla nas należy samemu wykonać testy wydajnościowe zbliżone do realnego zapotrzebowania swojej aplikacji.  Można zawsze zapytać samego dostawcę czy posiada w ofercie dyski o lepszych parametrach, które spełnią wymagania naszej aplikacji.

Masz jakieś pytania lub myślisz, że moglibyśmy zrobić wspólny projekt razem ? daj znać!

Informacje o nowych artykułach, świecie wirtualizacji i "cloud computingu" prosto na Twojego maila:

Dodam Cię do listy mailowej, z której możesz wypisać się w dowolnym momencie (jeden klik.) | Polityka Prywatności