# Jak sprawdzić wydajność dysków?
W celu sprawdzenia wydajności dysków OVS sugerujemy wykorzystać odpowiednio:
- fio dla systemów Linux (w przykładzie Debian/Ubuntu);
- Atto Disk Benchmark dla systemów Windows.
Testy dysków z Tier 3 i wyższym
Zalecana jest zmiana kontrolera dyskowego na High performance PVSCSI
Najlepiej jest testować dodatkowy dysk bez systemu plików który dodaje swój narzut.
Klasa instancji podczas testów powinna posiadać co najmniej 8 vCPU
Maksymalne parametry dla T4 i T5 można osiągnąć w PL-001 i PL-005
po wybraniu klasy instancji zawierającej co najmniej 16 vCPU.
# fio
Jest to działające z CLI narzędzie pozwalające na przeprowadzenie testów losowego lub sekwencyjnego odczytu/zapisu danych za pomocą komendy fio z odpowiednimi parametrami precyzującymi zapytanie.
W celu przeprowadzenia testów najpierw należy zainstalować aplikację. W tym celu zaloguj się przez ssh lub Konsolę zdalną na konto root instancji i zainstaluj aplikację fio poleceniem:
apt-get update && apt-get install -y fio
Poniżej przedstawiamy gotowe komendy testująca wydajność OVS oraz opis użytych parametrów.
{% code title="RandRead" %}
fio --filename=/dev/sdb --direct=1 --rw=randread --bs=4k \
--numjobs=2 --runtime=90 --group_reporting --name=test1 \
--ioengine=libaio --thread --iodepth=128 --time_based
{% endcode %}
{% code title="RandWrite" %}
fio --filename=/dev/sdb --direct=1 --rw=randwrite --bs=4k \
--numjobs=2 --runtime=90 --group_reporting --name=test1 \
--ioengine=libaio --thread --iodepth=128 --time_based
{% endcode %}
{% code title="ReadBandwidth, Random" %}
fio --filename=/dev/sdb --direct=1 --rw=randread --bs=1m \
--numjobs=4 --runtime=90 --group_reporting --name=test1 \
--ioengine=libaio --thread --iodepth=128 --time_based
{% endcode %}
{% code title="WriteBandwidth, Random" %}
fio --filename=/dev/sdb --direct=1 --rw=randwrite --bs=4k \
--numjobs=2 --runtime=90 --group_reporting --name=test1 \
--ioengine=libaio --thread --iodepth=128 --time_based
{% endcode %}
{% code title="Wyjaśnienia użytych parametrów" %}
--filename=/dev/sdb - nazwa dysku, który jest poddawany testom
--direct=1 - pomija lokalny cache w teście
--rw=randread - test randomowego odczytu
--rw=randwrite - test randomowego zapisu
--bs=4k - wielkość bloków, na jakich wykonywane są operacje
--numjobs=2 - ilość procesów wykonywanych jednocześnie
--runtime=90 - czas wykonywania testu w sekundach
--group_reporting - agreguje wszystkie wyniki do jednego raportu
--name=test1 - nazwa testu
--ioengine=libaio - standardowy, asynchroniczny silnik Linux’a
--thread - twórz wątki z wykorzystaniem pthread_create zamiast fork
--iodepth=128 - liczba maksymalnie niezakończonych asynchronicznych operacji
--time_based - uruchamia na zadany w runtime czas, powtarza jak skończy
{% endcode %}
W przypadku testowania plików w systemie plików należy dodatkowo do każdego z poleceń dodać parametr --**size**, na przykład **--size=512M**. Dla testów całych urządzeń jest to zbędne.
Dokumentacja parametrów fio dostępna jest na stronie: https://linux.die.net/man/1/fio.
Fio dostępne jest również w wersji dla Windows na stronie: https://bluestop.org/fio/.
# Atto Disk Benchmark
Jest to graficzne narzędzie do testowania wydajności urządzeń do magazynowania danych takich jak dyski twarde i SSD, karty pamięci oraz również dyski wirtualne. Testy polegają na pomiarach operacji odczytu i zapisu za pomocą danych różnej wielkości. Pozwala to określić szybkość dysku, której wartość pozwala oszacować jego działanie w czasie codziennej pracy. Wyniki testów przedstawiane są w postaci wykresów słupkowych, które można zapisać, bądź też wydrukować. Program nie wymaga instalacji.
W celu skorzystania z programu należy pobrać go ze strony producenta i uruchomić.
https://www.atto.com/disk-benchmark/ (opens new window)
- Wybierz nośnik do przetestowania na rozwijanej liście "Drive".
- Określ rozmiar transferowanego pakietu danych (Transfer Size, od 0,5KB do 8192KB),
- Poda całkowity rozmiar pliku do testów (Total Length, od 64KB do 2GB)
- Dodatkowo możesz określić pominięcie mechanizmu buforowania danych (Direct I/O), pominięcie zapisu pliku stronicowania (Bypass Write Cache), a także weryfikowanie danych w celu wykrycia błędów (Verify Data),
- Kliknij Start. Program zaprezentuje szybkość zapisu (kolor czerwony) i prędkość odczytu (kolor zielony), oś Y prezentuje wielkości paczek z danymi, zaś oś X osiągnięty transfer danych.
- Opcjonalnie zapisz/ wydrukuj test. Może to służyć porównaniom w przyszłości. Zapis testu tworzy plik w formacie .bmk.