Wydajność maszyny wirtualnej i dysku

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania jednolite zestawy skalowania

Ten artykuł pomaga wyjaśnić wydajność dysku i sposób jego działania podczas łączenia dysków platformy Azure Virtual Machines i platformy Azure. Opisano w nim również sposób diagnozowania wąskich gardeł dla operacji we/wy dysku oraz zmian, które można wprowadzić w celu optymalizacji pod kątem wydajności.

Jak działa wydajność dysku?

Maszyny wirtualne platformy Azure mają operacje wejścia/wyjścia na sekundę (IOPS) i limity wydajności przepływności na podstawie typu i rozmiaru maszyny wirtualnej. Dyski systemu operacyjnego i dyski danych można dołączyć do maszyn wirtualnych. Dyski mają własne limity liczby operacji we/wy na sekundę i przepływności.

Wydajność aplikacji jest ograniczana, gdy aplikacja żąda większej liczby operacji we/wy na sekundę lub większej przepływności niż przydzielona dla maszyn wirtualnych lub dołączonych dysków. Po ograniczeniu aplikacja ma nieoptymalną wydajność. Może to mieć negatywne skutki, takie jak zwiększone opóźnienia. Przyjrzyjmy się kilku przykładom, aby wyjaśnić tę koncepcję. Aby ułatwić śledzenie tych przykładów, przyjrzymy się tylko operacji we/wy na sekundę. Jednak ta sama logika ma zastosowanie do przepływności.

Ograniczenie operacji we/wy dysku

Instalacji:

  • Standardowa_D8s_v3
    • Niebuforowana wartość we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego E30
    • Operacje we/wy na sekundę: 500
  • Dwa dyski danych E30 × 2
    • Operacje we/wy na sekundę: 500

Diagram przedstawiający ograniczenie poziomu dysku.

Aplikacja uruchomiona na maszynie wirtualnej wysyła żądanie, które wymaga 10 000 operacji we/wy na sekundę do maszyny wirtualnej. Wszystkie z nich są dozwolone przez maszynę wirtualną, ponieważ Standard_D8s_v3 maszyna wirtualna może wykonać do 12 800 operacji we/wy na sekundę.

10 000 żądań liczby operacji we/wy na sekundę jest podzielonych na trzy różne żądania na różne dyski:

  • Do dysku systemu operacyjnego wymagane jest 1000 operacji we/wy na sekundę.
  • Do każdego dysku danych żąda się 4500 operacji we/wy na sekundę.

Wszystkie dołączone dyski są dyskami E30 i mogą obsługiwać tylko 500 operacji we/wy na sekundę. W związku z tym reagują z powrotem przy użyciu 500 operacji we/wy na sekundę. Wydajność aplikacji jest ograniczona przez dołączone dyski i może przetwarzać tylko 1500 operacji we/wy na sekundę. Aplikacja może działać ze szczytową wydajnością na 10 000 operacji we/wy na sekundę, jeśli są używane dyski o lepszej wydajności, takie jak dyski SSD P30 w warstwie Premium.

Ograniczanie operacji we/wy maszyny wirtualnej

Instalacji:

  • Standardowa_D8s_v3
    • Niebuforowana wartość we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego P30
    • Operacje we/wy na sekundę: 5000
  • Dwa dyski danych P30 × 2
    • Operacje we/wy na sekundę: 5000

Diagram przedstawiający ograniczenie poziomu maszyny wirtualnej.

Aplikacja uruchomiona na maszynie wirtualnej wysyła żądanie, które wymaga 15 000 operacji we/wy na sekundę. Niestety maszyna wirtualna Standard_D8s_v3 jest aprowizowana tylko do obsługi 12 800 operacji we/wy na sekundę. Aplikacja jest ograniczona przez limity maszyny wirtualnej i musi przydzielić przydzielone 12 800 operacji we/wy na sekundę.

Te 12 800 żądań liczby operacji we/wy na sekundę są podzielone na trzy różne żądania na różne dyski:

  • Do dysku systemu operacyjnego jest wymagane 4267 operacji we/wy na sekundę.
  • Do każdego dysku danych żąda się 4266 operacji we/wy na sekundę.

Wszystkie dołączone dyski to dyski P30, które mogą obsługiwać 5000 operacji we/wy na sekundę. W związku z tym reagują z powrotem na żądane kwoty.

Limity niebuforowane maszyny wirtualnej i buforowane

Maszyny wirtualne, które są włączone dla magazynu w warstwie Premium i pamięci podręcznej magazynu w warstwie Premium, mają dwa różne limity przepustowości magazynu. Przyjrzyjmy się Standard_D8s_v3 maszynie wirtualnej jako przykładu. Oto dokumentacja serii Dsv3 i Standard_D8s_v3:

Wykres przedstawiający specyfikacje D s v 3.

  • Maksymalna przepływność dysku bez pamięci podręcznej to domyślny limit maksymalnej ilości miejsca do magazynowania, który może obsłużyć maszyna wirtualna.
  • Maksymalny limit przepływności pamięci podręcznej magazynu jest oddzielnym limitem podczas włączania buforowania hosta.

Buforowanie hostów działa przez zbliżenie magazynu do maszyny wirtualnej, która może być zapisywana lub odczytywana w celu szybkiego odczytu. Ilość magazynu dostępnego dla maszyny wirtualnej na potrzeby buforowania hostów znajduje się w dokumentacji. Na przykład można zobaczyć, że Standard_D8s_v3 zawiera 200 GiB magazynu pamięci podręcznej.

Buforowanie hosta można włączyć podczas tworzenia maszyny wirtualnej i dołączania dysków. Możesz również włączyć i wyłączyć buforowanie hostów na dyskach na istniejącej maszynie wirtualnej. Domyślnie dyski danych z obsługą pamięci podręcznej mają włączoną buforowanie tylko do odczytu. Dyski systemu operacyjnego z obsługą pamięci podręcznej będą miały włączoną buforowanie odczytu/zapisu.

Zrzut ekranu przedstawiający buforowanie hosta.

Buforowanie hosta można dostosować tak, aby spełniało wymagania dotyczące obciążenia dla każdego dysku. Buforowanie hosta można ustawić na:

  • Tylko do odczytu: w przypadku obciążeń, które wykonują tylko operacje odczytu
  • Odczyt/zapis: w przypadku obciążeń, które równoważą operacje odczytu i zapisu

Jeśli obciążenie nie jest zgodne z jednym z tych wzorców, nie zalecamy używania buforowania hostów.

Przyjrzyjmy się kilku przykładom różnych ustawień pamięci podręcznej hosta, aby zobaczyć, jak wpływa to na przepływ danych i wydajność. W tym pierwszym przykładzie przyjrzymy się, co się stanie z żądaniami we/wy, gdy ustawienie buforowania hosta jest ustawione na wartość Tylko do odczytu.

Instalacji:

  • Standardowa_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowana wartość we/wy na sekundę: 12 800
  • Dysk danych P30
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hostów: tylko do odczytu

Po wykonaniu odczytu i udostępnieniu żądanych danych w pamięci podręcznej pamięć podręczna zwraca żądane dane. Nie ma potrzeby odczytywania z dysku. Ten odczyt jest liczone do limitów pamięci podręcznej maszyny wirtualnej.

Diagram przedstawiający trafienie odczytu buforowania hosta.

Gdy odczyt jest wykonywany i żądane dane nie są dostępne w pamięci podręcznej, żądanie odczytu jest przekazywane do dysku. Następnie dysk wyświetla go zarówno w pamięci podręcznej, jak i na maszynie wirtualnej. Ten odczyt jest liczone zarówno do limitu niebuforowanego maszyny wirtualnej, jak i limitu pamięci podręcznej maszyny wirtualnej.

Diagram przedstawiający chybienie odczytu buforowania hosta.

Po wykonaniu zapisu zapis musi zostać zapisany zarówno w pamięci podręcznej, jak i na dysku, zanim zostanie uznany za ukończony. Ten zapis jest wliczany do limitu niebuforowanego maszyny wirtualnej i limitu pamięci podręcznej maszyny wirtualnej.

Diagram przedstawiający buforowanie zapisu hosta odczytu.

Następnie przyjrzyjmy się, co się stanie z żądaniami we/wy, gdy ustawienie pamięci podręcznej hosta jest ustawione na odczyt/zapis.

Instalacji:

  • Standardowa_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowana wartość we/wy na sekundę: 12 800
  • Dysk danych P30
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: odczyt/zapis

Odczyt jest obsługiwany w taki sam sposób, jak w przypadku tylko do odczytu. Zapisy są jedyną rzeczą, która różni się od buforowania odczytu/zapisu. Podczas zapisywania za pomocą buforowania hosta jest ustawiona wartość Odczyt/zapis, zapis musi być zapisywany tylko w pamięci podręcznej hosta, aby został uznany za ukończony. Zapis jest następnie leniwie zapisywany na dysku, gdy pamięć podręczna jest okresowo opróżniona. Klienci mogą dodatkowo wymusić opróżnienie, wydając polecenie f/sync lub fua. Oznacza to, że zapis jest liczone w kierunku buforowanych operacji we/wy podczas zapisywania w pamięci podręcznej. Gdy jest on leniwie zapisywany na dysku, liczy się w kierunku niebuforowanego we/wy.

Diagram przedstawiający zapis buforowania hosta odczytu/zapisu.

Kontynuujmy pracę z maszyną wirtualną Standard_D8s_v3. Z wyjątkiem tego czasu włączymy buforowanie hostów na dyskach. Dzięki temu limit liczby operacji we/wy na sekundę maszyny wirtualnej wynosi 16 000 operacji we/wy na sekundę. Dołączone do maszyny wirtualnej to trzy podstawowe dyski P30, które mogą obsługiwać 5000 operacji we/wy na sekundę.

Instalacji:

  • Standardowa_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego P30
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: odczyt/zapis
  • Dwa dyski danych P30 × 2
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: odczyt/zapis

Diagram przedstawiający przykład buforowania hosta.

Aplikacja używa maszyny wirtualnej Standard_D8s_v3 z włączonym buforowaniem. Wysyła żądanie dla 16 000 operacji we/wy na sekundę. Żądania są wykonywane natychmiast po odczytaniu lub zapisaniu ich w pamięci podręcznej. Zapisy są następnie leniwie zapisywane na dołączonych dyskach.

Połączone limity niebuforowane i buforowane

Limity pamięci podręcznej maszyny wirtualnej są oddzielone od limitów bez buforowania. Oznacza to, że można włączyć buforowanie hosta na dyskach dołączonych do maszyny wirtualnej, jednocześnie nie włączając buforowania hostów na innych dyskach. Ta konfiguracja pozwala maszynom wirtualnym uzyskać łączną liczbę operacji we/wy magazynu limitu pamięci podręcznej oraz limit bez buforowania.

Przyjrzyjmy się przykładowi, aby zrozumieć, jak te limity współpracują ze sobą. Będziemy kontynuować konfigurację dołączoną do maszyny wirtualnej Standard_D8s_v3 i dysków w warstwie Premium.

Instalacji:

  • Standardowa_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego P30
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: odczyt/zapis
  • Dwa dyski danych P30 × 2
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: odczyt/zapis
  • Dwa dyski danych P30 × 2
    • Operacje we/wy na sekundę: 5000
    • Buforowanie hosta: wyłączone

Diagram przedstawiający przykład buforowania hosta z magazynem zdalnym.

W takim przypadku aplikacja uruchomiona na maszynie wirtualnej Standard_D8s_v3 wysyła żądanie na 25 000 operacji we/wy na sekundę. Żądanie jest podzielone na 5000 operacji we/wy na sekundę na każdy z dołączonych dysków. Trzy dyski używają buforowania hosta, a dwa dyski nie używają buforowania hosta.

  • Ponieważ trzy dyski korzystające z buforowania hostów znajdują się w granicach buforowanych 16 000, żądania te zostały pomyślnie ukończone. Nie występuje ograniczenie wydajności magazynu.
  • Ponieważ dwa dyski, które nie korzystają z buforowania hostów, znajdują się w granicach niebuforowanych 12 800, żądania te również zostały pomyślnie ukończone. Nie występuje ograniczenie.