Wpływ buforowania na wydajność dysku na platformie Azure

Ukończone

Podobnie jak w przypadku komputerów lokalnych wydajność maszyn wirtualnych może być często powiązana bezpośrednio z tym, jak szybko maszyna wirtualna może odczytywać i zapisywać dane. Aby zrozumieć, jak poprawić wydajność, najpierw musimy zrozumieć, jak jest mierzona wydajność. Musimy również zrozumieć ustawienia i wybory, które mają wpływ na ten pomiar.

Przyglądamy się konkretnie dyskom źródłowym i magazynowi używanemu dla maszyn wirtualnych. Podczas przeglądania wydajności należy pamiętać, że należy również rozważyć warstwę aplikacji. Jeśli na przykład używasz bazy danych na maszynie wirtualnej, chcesz sprawdzić ustawienia wydajności specyficzne dla bazy danych, aby upewnić się, że baza danych jest zoptymalizowana pod kątem maszyny wirtualnej i magazynu, na którym jest uruchomiona.

Zacznijmy od zdefiniowania kilku terminów i gwarancji dotyczących platformy Azure.

Operacje we/wy na sekundę

Wybrany typ magazynowania (Standard lub Premium) decyduje o szybkości dysków. Mierzymy tę wydajność w operacjach wejścia/wyjścia na sekundę, czyli IOPS (wymawiane jako "eye-ops").

IOPS to liczba żądań, które dysk może przetworzyć w ciągu jednej sekundy. Pojedyncze żądanie to operacja odczytu lub zapisu. Ta miara jest stosowana bezpośrednio do magazynu. Jeśli na przykład masz dysk, który może wykonać 5000 operacji we/wyna sekundę, oznacza to, że teoretycznie może przetwarzać 5000 operacji odczytu i zapisu na sekundę.

Notatka

Czynniki zewnętrzne, w tym opóźnienie, mogą wpływać na IOPS.

IOPS (operacje we/wy na sekundę) mają bezpośredni wpływ na wydajność aplikacji. Niektóre aplikacje, takie jak witryny handlu detalicznego, wymagają wysokiej liczby operacji we/wy na sekundę, aby obsługiwać wszystkie małe i losowe zapytania we/wy, które muszą być szybko przetwarzane, aby zapewnić szybką reakcję witryny.

IOPS w Azure

Po dołączeniu dysku magazynu w warstwie Premium do maszyny wirtualnej o wysokiej skalowalności platforma Azure zapewnia gwarantowaną liczbę operacji we/wy na sekundę zgodnie z parametrami dysku. Na przykład dysk P50 jest skonfigurowany do dostarczania 7500 operacji we/wy na sekundę. Każdy rozmiar maszyny wirtualnej dużej skali ma również określony limit liczby operacji we/wy na sekundę (IOPS), który jest w stanie obsłużyć. Na przykład maszyna wirtualna Standard GS5 ma limit 80 000 operacji we/wy na sekundę.

Liczba operacji we/wy na sekundę to pomiar wydajności dysków; jednak jest to teoretyczny limit. Dwa inne czynniki mogą mieć wpływ na rzeczywistą wydajność aplikacji: przepustowość i latencja.

Co to jest przepływność?

Przepustowość to ilość danych wysyłanych przez aplikację do dysków pamięci masowej w określonym przedziale czasu (zazwyczaj na sekundę). Jeśli twoja aplikacja wykonuje operacje wejścia/wyjścia na dużych blokach danych, wymaga wysokiej przepustowości.

Platforma Azure zapewnia przepływność na dyskach magazynu w warstwie Premium zgodnie ze specyfikacją danego dysku. Na przykład dysk P50 zapewnia 250 MB na sekundę przepustowości dysku. Każdy rozmiar maszyny wirtualnej o dużej skali ma również określony limit przepływności, który może utrzymać. Na przykład Standardowa GS5 maszyna wirtualna ma maksymalną przepływność 2000 MB na sekundę.

Liczba operacji we/wy na sekundę a przepustowość

Przepływność i liczba operacji we/wy na sekundę mają bezpośrednią relację, a zmiana jednego ma bezpośredni wpływ na drugą. Aby uzyskać teoretyczny limit przepływności, możesz użyć formuły: IOPS x I/O size = throughput. Podczas planowania aplikacji należy wziąć pod uwagę obie te wartości.

Co to jest opóźnienie?

Odczytywanie i zapisywanie danych zajmuje trochę czasu. opóźnienie to czas potrzebny aplikacji na wysłanie żądania na dysk i uzyskanie odpowiedzi. Zasadniczo opóźnienie informuje nas, jak długo trwa proces pojedyncze żądanie we/wy odczytu lub zapisu.

Opóźnienie nakłada limit liczby operacji we/wy na sekundę. Jeśli na przykład nasz dysk może obsłużyć 5000 operacji we/wy na sekundę, ale każda operacja zajmuje 10 ms do przetworzenia, nasza aplikacja jest ograniczona do 500 operacji na sekundę ze względu na czas przetwarzania. Ten przykład jest prostą ilustracją; w większości przypadków opóźnienia są znacznie niższe. Ostatecznie opóźnienie i przepustowość określają, jak szybko aplikacja może przetwarzać dane z pamięci.

Magazyn w warstwie Premium zapewnia spójne niskie opóźnienia, a w razie potrzeby można osiągnąć jeszcze lepsze opóźnienia dzięki buforowaniu .

Testowanie wydajności dysku

Możesz dostosować i zrównoważyć liczbę operacji we/wy na sekundę, przepływność i opóźnienie dysków maszyny wirtualnej, wybierając odpowiedni rozmiar maszyny wirtualnej i typ magazynu. Zazwyczaj większe lub droższe rozmiary maszyn wirtualnych mają wyższe gwarancje maksymalnej liczby operacji we/wy na sekundę i przepustowości. Dodaj do tej układanki różnicę między pamięcią Standardową a Premium oraz wybory między HDD i SSD, i masz kilka parametrów, z którymi możesz eksperymentować.

Wybranie odpowiedniej kombinacji obejmuje zrozumienie wymagań aplikacji. Aplikacje o wysokiej intensywności operacji we/wy, takie jak serwery baz danych lub systemy przetwarzania transakcyjnego online, wymagają większej liczby operacji we/wy na sekundę, natomiast aplikacje bardziej oparte na obliczeniach mogą mieć niższe wymagania. Ponadto typy operacji wykonywanych przez aplikacje wpływają na przepływność. Operacje wejścia/wyjścia o losowym dostępie bywają wolniejsze niż długie odczyty sekwencyjne.

Po wybraniu konfiguracji możesz użyć narzędzi, takich jak Iometer, aby przetestować wydajność dysku na maszynach wirtualnych z systemem Linux i Windows. Ten test daje bardziej rzeczywiste poczucie tego, jakiego rodzaju wydajność można oczekiwać. Może również pomóc w zidentyfikowaniu sposobów poprawy użycia pamięci przez aplikację. Na przykład aplikacja, która wykonuje jednowątkowe operacje we/wy, prawdopodobnie doświadczy obniżonej wydajności we/wy z powodu opóźnienia.

W następnej lekcji przyjrzymy się innym elementom, które możemy zrobić, aby zwiększyć wydajność dysku.