Jakie liczniki wydajności można sprawdzić w wystąpieniu programu SQL Server, aby określić jego wydajność i ogólny stan zdrowia?

10

Jestem studentem Fontys University w Eindhoven, a obecnie przeprowadzam serię wywiadów, aby pomóc w opracowaniu narzędzia SQL Server i chciałbym uzyskać opinie od ekspertów w tej dziedzinie.

Jedno z moich pytań to:

Jakie liczniki wydajności można sprawdzić w wystąpieniu programu SQL Server, aby określić jego wydajność i ogólny stan?

Szczególnie interesują mnie wartości progowe, gdy dobro staje się złe.

Jamil Young Eindhoven Holandia

Jamil
źródło

Odpowiedzi:

15

Oto mój samouczek dotyczący programu Perfmon dla programu SQL Server: http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

Aby uzyskać więcej liczników i progów, oto plakat, który zrobiliśmy, gdy byłem w Questie: http://www.quest.com/documents/landing.aspx?id=11635

Brent Ozar
źródło
to wspaniały plik PDF z zadania. Zdecydowanie opiekun. Powinny też zrobić jeden dla DMV.
StanleyJohns,
Właściwie to zrobiliśmy! Zazwyczaj są one rozdawane na spotkaniach grup użytkowników i na konferencjach.
Brent Ozar
6

Jest to duży temat z dużą ilością materiałów dostępnych w jednym miejscu Googlinga. Na początek są to liczniki, na które zwykle patrzę:

Procesor -% czasu procesora

System - długość kolejki procesora

Prawdopodobnie dostaniesz inną wartość docelową wykorzystania procesora od każdego DBA, o który poprosisz. Licencje na SQL Server są drogie, więc z jednej strony chcesz zmaksymalizować wykorzystanie procesorów, az drugiej strony nie chcesz narażać dostępności. W idealnym świecie z dobrze zrozumiałymi obciążeniami możesz celować w 70%, ostrzegać na poziomie 80-90%, ostrzegać na poziomie 90% +. W prawdziwym świecie z obciążeniem, które osiąga maksimum i minimum, możesz być bardziej komfortowy, celując średnio 50-60%.

Pamięć - dostępne MBytes

Plik stronicowania -% wykorzystania

Dzięki dedykowanemu serwerowi SQL Server, w zależności od zainstalowanej pamięci RAM, mniej niż 100-200 MB dostępnej pamięci może wskazywać na głód i ryzyko stronicowania systemu operacyjnego. Ogólnie rzecz biorąc, nie chcemy widzieć dużej aktywności w plikach stron, dlatego sprawdzałbym, czy użycie% było większe niż 2%, i martwiłem się, czy osiągnęło 5%

Buffer Manager - Współczynnik trafień w pamięci podręcznej bufora

Buffer Manager - oczekiwana długość życia strony

Oba te liczniki lepiej rozważyć w stosunku do ustalonej linii podstawowej dla serwera. Idealnie byłoby, gdyby współczynnik trafień w pamięci podręcznej był jak najbliższy 100%, a PLE działało w ciągu tysięcy sekund. Zwróć uwagę, gdy odchylają się od średnich historycznych.

Statystyka SQL - żądania wsadowe / s

Statystyka SQL - Kompilacje / s

Statystyka SQL - rekompilacje / s

Żądania / s to doskonały wskaźnik względny określający „zajętość” serwera. Wysokie wartości kompilacji / rekompilacji mogą wskazywać na marnowanie cykli procesora podczas kompilacji zapytań.

Dysk fizyczny - śr. Dysk sec / Read

Dysk fizyczny - śr. Dysk sec / Write

Dysk fizyczny - odczyt dysku / s

Dysk fizyczny - zapisy dysku / s

Orientacyjna wytyczna dla właściwie skonfigurowanego systemu IO wynosi <5ms (idealnie 1ms) dla napędów logowych, <20ms (idealnie <10ms) dla danych. Odczyty / zapisy na sekundę należy rozważyć w stosunku do znanego limitu dla dysków (dysków), tj. Jeśli masz pojemność na 1000 IOPS, oceniłbym opcje aktualizacji, gdy średni IOPS osiągnął 750.

Mark Storey-Smith
źródło
Czy na tym poziomie jest coś do monitorowania impasu i czeka?
bernd_k
„Zamki - liczba zakleszczeń / sek” dla zakleszczeń. W przypadku czeków istnieją różne liczniki w kategorii „Statystyka czekania”.
Mark Storey-Smith