To kiedyś było prawdą, ale nie jest już wyłącznie prawdą.
Odnoszą się one do ścisłego wspólnego planowania .
Co najważniejsze, podczas gdy w ścisłym algorytmie współsprawiania istnienie opóźnionego vCPU powoduje zatrzymanie całej maszyny wirtualnej. W uproszczonym algorytmie wspólnego planowania szereg wiodący vCPU decyduje, czy powinien się zatrzymać na podstawie pochylenia względem najwolniejszego vCPU rodzeństwa
Teraz, jeśli host ma tylko 4 wątki, głupio byłoby przydzielić je wszystkie. Jeśli to ma dwa procesory i 4 wątki na procesorze, to może nie chcą przeznaczyć całą zawartość pojedynczego procesora, jak Twój hypervisor powinien starać się zachować vCPUs w tym samym węźle NUMA, aby dostęp do pamięci szybciej, a ty utrudniając to zadanie, przydzielając całe gniazdo jednej maszynie wirtualnej (patrz strona 12 tego pliku PDF powyżej).
Są więc scenariusze, w których mniej vCPU może działać lepiej niż więcej, ale nie jest to prawdą w 100% przypadków.
Wszystko, co zostało powiedziane i zrobione, bardzo rzadko przydzielam więcej niż 3 vCPU na gościa. Każdy dostaje domyślnie 2, 3, jeśli jest to duże obciążenie, i 4 za takie rzeczy, jak serwery SQL lub naprawdę duże maszyny wirtualne do przetwarzania wsadowego lub serwer terminali z dużą liczbą użytkowników.
MAXDOP
ustawienia. Jednak w zależności od obciążenia nadmiernie opodatkowany serwer SQL jest często oznaką złego projektu bazy danych - złe indeksy, brak indeksów klastrowych, zbyt wiele indeksów, brak optymalizacji itp. (Nie zawsze, ale często).W dużej mierze zależy to od hiperwizora i administratorów, którzy go uruchamiają, pozwól mi wyjaśnić:
Czego możesz się z tego nauczyć? Zawsze twórz maszyny wirtualne z minimalnymi zasobami i zwiększaj je w razie potrzeby. Zawsze skaluj w górę zamiast w górę, a będziesz mógł uruchomić aplikację w dowolnym miejscu.
Z powodu blokowania, którego można doświadczyć za pomocą hiperwizora, prawdą jest, że 2 procesory mogą być szybsze niż 4 procesory.
źródło
Tak, stwierdzenie to ma sens w ogóle. Jest to jednak coś, co powinieneś przetestować pod kątem dokładnej konfiguracji i obciążenia. Czasami więcej procesorów jest lepsze, jeśli można z nich skorzystać. Jeśli jednak nie masz tak dużej równoległości, maszyna wirtualna skonfigurowana z mniejszą liczbą procesorów będzie często działać nieco lepiej, ponieważ unika spowolnień spowodowanych przerwami w stanie gotowości procesora.
Zmniejszyłem vCPU na wielu naszych maszynach wirtualnych i zauważyłem poprawę przepustowości na większości. Garstka pogorszyła się i trzeba było podbić liczbę vCPU.
źródło