Database
 sql >> Baza danych >  >> RDS >> Database

Rozwiązywanie problemów z wydajnością procesora w VMware

Podczas rozwiązywania problemów z wydajnością procesora na zwirtualizowanych serwerach SQL Server działających na VMware, jedną z pierwszych rzeczy, które robię, jest sprawdzenie, czy konfiguracja maszyny wirtualnej nie jest czynnikiem przyczyniającym się do problemu z wydajnością. Tam, gdzie serwer fizyczny ma 100% dostępnych zasobów przeznaczonych na system operacyjny, maszyna wirtualna nie ma, więc przyjrzenie się kilku podstawowym elementom z góry eliminuje rozwiązywanie niewłaściwego problemu i marnowanie czasu. W przeszłości pisałem na blogu o tym, jak ważne jest, aby administratorzy baz danych mieli dostęp tylko do odczytu do Virtual Center for VMware w celu podstawowego rozwiązywania problemów z wydajnością. Jednak nawet bez dostępu do Virtual Center nadal można znaleźć podstawowe informacje w systemie Windows, które mogą prowadzić do potencjalnych problemów na poziomie hosta, które wpływają na wydajność.

Każda maszyna wirtualna VMware ma dwie grupy liczników wydajności w systemie Windows, które są dodawane, gdy narzędzia VMware są instalowane w gościu; Procesor maszyny wirtualnej i pamięć maszyny wirtualnej. Te liczniki wydajności są jedną z pierwszych rzeczy, na które patrzę za każdym razem, gdy pracuję z maszyną wirtualną na VMware, ponieważ pozwalają zobaczyć, jakie zasoby maszyna wirtualna otrzymuje z hipernadzorcy. Grupa procesorów VM ma następujące liczniki:

  • % czasu procesora
  • Efektywna prędkość VM w MHz
  • Szybkość procesora hosta w MHz
  • Limit w MHz
  • Rezerwacja w MHz
  • Udostępnienia

Na gościu maszyny wirtualnej, który pokazuje wysoki czas procesora\% procesora w Menedżerze zadań lub perfmon, sprawdzenie liczników procesora maszyny wirtualnej da dokładne zestawienie rzeczywistych alokacji zasobów, które otrzymuje gość maszyny wirtualnej. Jeśli szybkość procesora hosta w MHz wynosi 3000, a gość ma przydzielonych 8 wirtualnych procesorów, maksymalna efektywna szybkość maszyny wirtualnej wynosi 24000 MHz, a licznik efektywnej szybkości maszyny wirtualnej w MHz będzie odzwierciedlał, czy maszyna wirtualna faktycznie pobiera zasoby z gospodarz. Zwykle w takim przypadku musisz zacząć przeglądać informacje na poziomie hosta, aby dalej zdiagnozować pierwotną przyczynę problemu. Ale w niedawnym zaangażowaniu klientów okazało się, że tak nie jest.

Maszyna wirtualna klienta w tym przypadku pasowała do konfiguracji opisanej powyżej i miała maksymalną efektywną szybkość 24000 MHz, ale licznik efektywnej szybkości maszyny wirtualnej w MHz wynosił tylko średnio około 6900 MHz z czasem procentowym procesora Windows maszyny wirtualnej ustalonym na prawie 100%. Spojrzenie tuż poniżej licznika efektywnej szybkości maszyny wirtualnej w MHz ujawniło przyczynę problemu:limit w MHz wynosił 7000, co oznacza, że ​​maszyna wirtualna miała skonfigurowany limit wykorzystania procesora na poziomie 7000 MHz w ESX, więc był konsekwentnie dławiony przez hipernadzorcę pod Załaduj.

Wyjaśnieniem tego było to, że ta konkretna maszyna wirtualna była używana do celów testowych w ramach weryfikacji koncepcji i pierwotnie znajdowała się w jednym miejscu na zajętym hoście maszyny wirtualnej; administratorzy maszyn wirtualnych nie chcieli, aby nieznane obciążenie powodowało problemy z wydajnością na tym hoście. Tak więc, aby upewnić się, że nie wpłynie to negatywnie na rzeczywiste obciążenia produkcyjne hosta podczas POC, ograniczono do dopuszczania tylko 7000 MHz procesora lub odpowiednika 2 1/3 fizycznych rdzeni na hoście. Ostatecznie usunięcie limitu procesora VM w ESX wyeliminowało wysokie problemy z procesorem w systemie Windows, a problemy z wydajnością, których doświadczał klient, zniknęły.

Grupa liczników pamięci VM jest tak samo ważna jak grupa procesorów VM do identyfikowania potencjalnych problemów z wydajnością programu SQL Server. Grupa liczników VM Memory zawiera następujące liczniki:

  • Pamięć aktywna w MB
  • Pamięć w dymku w MB
  • Limit pamięci w MB
  • Pamięć mapowana w MB
  • Narzut pamięci w MB
  • Rezerwacja pamięci w MB
  • Pamięć współdzielona w MB
  • Wspólna pamięć zapisana w MB
  • Udziały pamięci
  • Pamięć zamieniona w MB
  • Pamięć używana w MB

Spośród tych liczników, te, na które szczególnie zwracam uwagę, to liczba balonów pamięci w MB i pamięć wymiany w MB, z których oba powinny wynosić zero dla obciążeń SQL Server. Licznik liczby pozycji pamięci w MB informuje, ile pamięci zostało odzyskane z maszyny wirtualnej gościa przez sterownik dymków z powodu nadmiernego obciążenia pamięci na hoście, co spowoduje, że SQL Server zmniejszy użycie pamięci w odpowiedzi na ciśnienie pamięci w systemie Windows spowodowane przez sterownik dymków nadmuchiwanie, aby zabrać pamięć z maszyny wirtualnej. Licznik Pamięć zamieniona w MB śledzi, ile pamięci zostało stronicowane na dysk przez hipernadzorcę hosta z powodu przeciążenia pamięci na hoście, którego nie można było rozwiązać poprzez balonowanie gości VM za pomocą sterownika balonu. Przewodnik po najlepszych praktykach VMware dla SQL Server zaleca korzystanie z rezerwacji, aby zagwarantować, że SQL Server nie będzie przeskakiwany ani stronicowany ze względu na wydajność, ale wielu administratorów maszyn wirtualnych niechętnie ustawia rezerwacje statyczne, ponieważ zmniejsza to elastyczność środowiskową.

Pomocne mogą być również narzędzia monitorujące, takie jak SentryOne V Sentry. Rozważ przypadek, w którym możesz nie mieć bezpośredniego dostępu do vCenter, ale ktoś może skonfigurować monitorowanie w Twoim imieniu. Teraz możesz uzyskać doskonałą wizualizację i wgląd w problemy z procesorem, pamięcią, a nawet dyskami – zarówno na poziomie gościa, jak i hosta – oraz całą związaną z tym historię. Na poniższym panelu możesz zobaczyć metryki hosta po lewej stronie (w tym podziały procesorów dla czasu co-stop i czasu gotowości) oraz metryki gości po prawej:

Aby wypróbować tę i inne funkcje SentryOne, możesz pobrać bezpłatną wersję próbną.

Wniosek

Podczas rozwiązywania problemów z wydajnością na zwirtualizowanych serwerach SQL Server na VMware ważne jest, aby spojrzeć na problem z holistycznego punktu widzenia, zamiast rozwiązywać problemy „odruchowo” przy użyciu tylko ograniczonych informacji. Liczniki specyficzne dla VMware w Monitorze wydajności mogą być świetnym sposobem na szybkie sprawdzenie, czy maszyna wirtualna otrzymuje podstawowe przydziały zasobów z hosta, przed podjęciem dalszych kroków w celu rozwiązania problemu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie kopii zapasowych baz danych SQL za pomocą VDP Advanced SQL Agent

  2. 4 sposoby na uzyskanie definicji procedury składowanej przy użyciu języka Transact-SQL

  3. Co to jest SQL?

  4. Stosunki pryzmatyczne

  5. Przeczytaj izolację zatwierdzonej migawki