Mam fizyczny serwer z jedną instancją SQL Server.
Zauważam, że dość często ten serwer działa przy 100% obciążeniu procesora.
Mój zespół IT nie jest z tego powodu zadowolony i zasugerował zarezerwowanie 2 z 32 rdzeni dla systemu operacyjnego.
Działa to świetnie, teraz maksymalne użycie szczytowe poniżej 90%. Ponadto nie jest już zgłaszane powolne pobieranie danych od różnych użytkowników.
Czy istnieje jakikolwiek powód, aby NIE używać WSRM (Windows System Resource Manager) w ten sposób - zamiast SQL Resource Governor?
sql-server
configuration
windows
resource-governor
ManInMoon
źródło
źródło
Odpowiedzi:
Czy istnieje jakikolwiek powód, aby NIE stosować zdefiniowanego przez Ciebie podejścia? Absolutnie.
Wyobraź sobie, że kupiłeś samochód - samochód, który po osiągnięciu 50 MPH silnik zaczyna się przegrzewać. Czy zareagowałbyś na tę sytuację, sztucznie ograniczając samochód do 49MPH, lub by dowiedzieć się, co jest przyczyną usterki silnika?
Dlaczego warto ograniczyć samochód do 49MPH? Producent stwierdził, że może jechać tak szybko, jak 80MPH - lubisz jeździć samochodem szybko, więc chcesz uzyskać taką prędkość - gdyby nie ten cholerny problem przegrzania.
Samochód, który kupiłeś, był też naprawdę bardzo drogi. Każdy cylinder silnika musi być maksymalnie wykorzystany, abyś nie marnował tych pieniędzy!
Sztucznie ograniczając dostęp serwerów SQL do procesora, tracisz wydajność. Być może tymczasowo rozwiązałeś problemy z wydajnością, upewniając się, że procesor jest dostępny dla systemu operacyjnego, ale nie odpowiedziałeś na prawdziwe pytanie - DLACZEGO SQL Server używa 100% procesora?
Moja rada jest następująca:
Dowiedz się, jaki jest prawdziwy problem i napraw go. Nie ukrywaj problemu tym, co faktycznie jest kludge. Kwestia BĘDZIE ponownie i klapsa w twarz w dół linii, gdy obciążenie serwera naturalnie wzrasta ze wzrostem gospodarczym.
Jako tymczasową poprawkę można użyć regulatora zasobów w celu obniżenia używanego procesora, AŻ DO ZNALEZIENIA PRAWDZIWEGO PROBLEMU.
źródło
Erik Darling wymienił największy praktyczny powód nieużywania WSRM w komentarzu do twojego pytania:
Jeśli to działa dla ciebie, trzymaj się tego - wszyscy jesteśmy zajęci i możesz poświęcić tyle czasu na dany problem. Idealnym rozwiązaniem byłoby ustalenie bazowych zapytań / problemów, które sterują CPU punktu problemów zauważalne przez użytkownika (co George okładek w jego doskonałą odpowiedź ).
Erik mówi dalej
Z biznesowego punktu widzenia jest to prawdopodobnie najgorsza część umowy WSRM - płacisz licencję na rdzeń za 2 rdzenie, które wyraźnie nie są używane. W chwili pisania tego tekstu na stole pozostało 3 000 USD lub 14 000 USD (w zależności od wersji Standard vs Enterprise).
źródło