Udostępnij przez


Zagadnienia dotyczące maszyny wirtualnej z systemem Linux

Maszyny wirtualne z systemami Linux i BSD mają dodatkowe uwagi w porównaniu z maszynami wirtualnymi z systemem Windows w funkcji Hyper-V.

Pierwszą kwestią jest to, czy usługi Integration Services są obecne, czy też maszyna wirtualna działa tylko na emulowanym sprzęcie bez oświecenia. Tabela wydań systemów Linux i BSD, które mają wbudowane lub dostępne do pobrania usługi Integration Services, jest dostępna w temacie Obsługiwane maszyny wirtualne z systemem Linux i FreeBSD dla Hyper-V w systemie Windows. Te strony zawierają siatki dostępnych funkcji Hyper-V dostępnych w wersjach dystrybucji systemu Linux oraz informacje o tych funkcjach, jeśli mają zastosowanie.

Nawet jeśli gość korzysta z usług Integration Services, można go skonfigurować przy użyciu starszego sprzętu, który nie wykazuje najlepszej wydajności. Na przykład skonfiguruj wirtualną kartę ethernet dla gościa i użyj jej zamiast używać starszej karty sieciowej. W systemie Windows Server 2016 dostępne są również zaawansowane sieci, takie jak SR-IOV.

Wydajność sieci systemu Linux

System Linux domyślnie włącza przyspieszanie sprzętowe i odciążanie. Jeśli usługa vRSS jest włączona we właściwościach karty sieciowej na hoście, a gość systemu Linux ma możliwość korzystania z usługi vRSS, funkcja zostanie włączona. W programie PowerShell ten sam parametr można zmienić za EnableNetAdapterRSS pomocą polecenia .

Podobnie funkcja wirtualny przełącznik RSS (VMMQ) może być włączona na fizycznej karcie sieciowej używanej przez właściwości> gościaKonfiguruj...>Zaawansowane ustawiając > na Włączony lub włącz funkcję VMMQ w PowerShell, używając poniższego:

 Set-VMNetworkAdapter -VMName **$VMName** -VmmqEnabled $True

W przypadku gościa dodatkowe dostrajanie PROTOKOŁU TCP można wykonać przez zwiększenie limitów. Rozłożenie obciążenia na wiele procesorów i posiadanie złożonych obciążeń zapewnia najlepszą przepływność, ponieważ zwirtualizowane obciążenia będą miały większe opóźnienie niż te bezpośrednio na sprzęcie, aby uzyskać najlepszą wydajność.

Oto przykładowe parametry dostrajania, które były przydatne w testach porównawczych sieci:

net.core.netdev_max_backlog = 30000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_wmem = 4096 12582912 33554432
net.ipv4.tcp_rmem = 4096 12582912 33554432
net.ipv4.tcp_max_syn_backlog = 80960
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_abort_on_overflow = 1

Przydatne narzędzie dla mikrobenchmarków sieciowych to ntttcp, który jest dostępny zarówno w systemach Linux, jak i Windows. Wersja Linux jest projektem open source i dostępna na github.com jako ntttcp-for-linux. Wersja systemu Windows znajduje się w Centrum pobierania. Podczas dostrajania obciążeń najlepiej używać jak największej liczby strumieni, aby uzyskać najlepszą przepływność. Używając ntttcp do modelowania ruchu, -P parametr ustawia liczbę używanych połączeń równoległych.

Wydajność magazynu w systemie Linux

Poniżej wymieniono najlepsze rozwiązania dotyczące uruchamiania systemu Linux w funkcji Hyper-V. Jądro systemu Linux ma różne harmonogramy we/wy w celu zmiany kolejności żądań przy użyciu różnych algorytmów. NOOP to kolejka pierwszy na wejściu, która przekazuje decyzję o harmonogramie, która ma zostać podjęta przez funkcję hypervisor. Zaleca się używanie funkcji NOOP jako harmonogramu podczas uruchamiania maszyny wirtualnej z systemem Linux na funkcji Hyper-V. Aby zmienić harmonogram dla określonego urządzenia, w konfiguracji modułu ładującego rozruchu (na przykład/etc/grub.conf) dodaj elevator=noop do parametrów jądra, a następnie uruchom ponownie.

Podobnie jak w przypadku sieci, wydajność gościa systemu Linux związana z pamięcią masową przynosi największe korzyści z wielu kolejek o wystarczającej głębokości, aby utrzymać hosta zajętego. Mikrobenchmarking wydajności pamięci jest prawdopodobnie najlepszy przy użyciu narzędzia benchmark fio z silnikiem libaio.

Dodatkowe odwołania