Udostępnij za pośrednictwem


Wydajność maszyny wirtualnej i dysku

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

Ten artykuł pomaga wyjaśnić wydajność dysku i sposób jego działania podczas łączenia maszyn wirtualnych platformy Azure i dysków platformy Azure. W tym artykule opisano 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.

Na czym polega wydajność dysku?

Maszyny wirtualne platformy Azure mają limity wydajności dotyczące produktywności i operacji wejścia/wyjścia na sekundę 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 dotyczące liczby operacji we/wy na sekundę i produktywnoś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ć obserwowanie tych przykładów, przyjrzymy się tylko limitom dotyczącym liczby operacji we/wy. Jednak ta sama logika ma zastosowanie do produktywności.

Ograniczanie operacji we/wy dysku

Instalacji:

  • Standard_D8s_v3
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego E30
    • IOPS: 500
  • Dwa dyski danych E30 × 2
    • IOPS: 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ż maszyna wirtualna Standard_D8s_v3 może wykonać maksymalnie 12 800 operacji we/wy na sekundę.

10 000 żądań 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 to dyski 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 poziomie 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:

  • Standard_D8s_v3
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego P30
    • IOPS: 5000
  • Dwa dyski danych P30 × 2
    • IOPS: 5000

Diagram przedstawiający ograniczenie poziomu maszyny wirtualnej.

Aplikacja uruchomiona na maszynie wirtualnej wysyła żądanie wymagające 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ę.

Żądane 12 800 operacji we/wy na sekundę są podzielone na trzy różne żądania na różne dyski:

  • Do dysku systemu operacyjnego wymagane jest 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 z żądanymi kwotami.

Limity bez buforowania maszyny wirtualnej i buforowanej

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

  • Dane dysku "Uncached" w ramach magazynu zdalnego są domyślnymi limitami maksymalnymi magazynu, które może obsłużyć maszyna wirtualna. Wykres przedstawiający specyfikacje zdalne dsv3.

  • Dane dysku "Buforowane" na karcie Magazyn lokalny są oddzielnymi limitami po włączeniu buforowania hosta. Wykres przedstawiający specyfikacje lokalne dsv3.

Buforowanie hostów działa, przybliżając magazyn do maszyny wirtualnej, która może być zapisywana lub odczytywana w celu szybkiego odczytu. Ilość magazynu, który jest dostępny 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 hostów 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 mają włączone buforowanie odczytu/zapisu.

Zrzut ekranu przedstawiający buforowanie hostów.

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 wykonują równoważenie operacji 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 na przepływ danych i wydajność. W tym pierwszym przykładzie widzimy, co się dzieje z żądaniami we/wy, gdy ustawienie buforowania hosta jest ustawione na wartość Tylko do odczytu.

Instalacji:

  • Standard_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk danych P30
    • IOPS: 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 buforowanych maszyn wirtualnych.

Diagram przedstawiający trafienie odczytu buforowania hosta.

Gdy odczyt jest wykonywany, a żą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 liżony zarówno do limitu niecached maszyny wirtualnej, jak i limitu pamięci podręcznej maszyny wirtualnej.

Diagram przedstawiający chybienie odczytu buforowania hosta.

Po wykonaniu zapisu należy zapisać zapis zarówno w pamięci podręcznej, jak i na dysku, zanim zostanie uznany za ukończony. Ten zapis jest liżony do limitu niecached maszyny wirtualnej i limitu pamięci podręcznej maszyny wirtualnej.

Diagram przedstawiający zapis buforowania hosta odczytu.

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

Instalacji:

  • Standard_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk danych P30
    • IOPS: 5000
    • Buforowanie hostów: odczyt/zapis

Odczyt jest obsługiwany w taki sam sposób jak tylko do odczytu. Zapisy są jedyną rzeczą, która różni się od buforowania odczytu/zapisu. Podczas zapisywania przy użyciu buforowania hosta jest ustawiona wartość Odczyt/zapis, należy zapisać tylko zapis w pamięci podręcznej hosta, aby można je było uznać za ukończone. Zapis jest następnie z opóźnieniem zapisywany na dysku, gdy pamięć podręczna jest okresowo opróżniona. Klienci mogą dodatkowo wymusić opróżnienie, wydając f/sync polecenie lub fua . Oznacza to, że zapis jest liowany w kierunku buforowanych operacji we/wy podczas zapisywania w pamięci podręcznej. Gdy jest on z opóźnieniem zapisywany na dysku, liczy się w kierunku niecachedowanych operacji we/wy.

Diagram przedstawiający buforowanie zapisu hosta odczytu/zapisu.

Kontynuujmy pracę z naszą maszyną wirtualną Standard_D8s_v3. Z wyjątkiem tego czasu włączamy buforowanie hostów na dyskach. Dzięki temu limit 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:

  • Standard_D8s_v3
    • Buforowane operacje we/wy na sekundę: 16 000
    • Niebuforowane operacje we/wy na sekundę: 12 800
  • Dysk systemu operacyjnego P30
    • IOPS: 5000
    • Buforowanie hostów: odczyt/zapis
  • Dwa dyski danych P30 × 2
    • IOPS: 5000
    • Buforowanie hostów: odczyt/zapis

Diagram przedstawiający przykład buforowania hosta.

Aplikacja używa maszyny wirtualnej Standard_D8s_v3 z włączoną buforowaniem. Wykonuje żądanie dla 16 000 operacji we/wy na sekundę. Żądania są wykonywane natychmiast po ich odczytaniu lub zapisaniu 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 hostów na dyskach dołączonych do maszyny wirtualnej, nie włączając buforowania hostów na innych dyskach. Ta konfiguracja umożliwia maszynom wirtualnym uzyskanie całkowitej liczby operacji we/wy magazynu limitu pamięci podręcznej oraz limitu bez buforowania.

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

Instalacji:

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

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

W takim przypadku aplikacja uruchomiona na maszynie wirtualnej Standard_D8s_v3 wysyła żądanie o 25 000 operacji we/wy na sekundę. Żądanie jest podzielone na 5000 operacji we/wy na sekundę na każdą 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, te żądania 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, te żądania również zostały pomyślnie ukończone. Nie ma ograniczenia.