A może perfmon powinien być ograniczony do serwera Dev / QA z testami obciążenia symulującymi aktywność produkcyjną?
Chciałbym uruchomić perfmon przez dwa dni ( jak sugeruje mistrz Sql Server Brent Ozar ), aby uzyskać ogólny obraz wydajności bazy danych mojej aplikacji internetowej.
sql-server
performance
performance-tuning
perfmon
Bill Paetzke
źródło
źródło
Odpowiedzi:
SQL Server i większość innych produktów generują liczniki przez cały czas, bez względu na to, czy są detektory, czy nie (ignorując opcję uruchamiania -x). Śledzenie licznika jest całkowicie przezroczyste w monitorowanej aplikacji. Istnieje obszar pamięci współużytkowanej, w którym zapisywana jest aplikacja monitorowana i z którego sesje monitorowania odczytują surowe wartości w określonym przedziale czasu. Tak więc jedynym kosztem związanym z monitorowaniem jest koszt procesu monitorowania i koszt zapisu próbkowanych wartości na dysk. Wybór przyzwoitego interwału zbierania (zwykle wybieram 15 sekund) i umiarkowanej liczby liczników (50-100) i zapisywanie w formacie pliku binarnego zwykle nie ma wpływu na monitorowany system.
Ale odradzam używanie Perfmon (jak w perfmon.exe). Zamiast tego zapoznaj się z logman.exe, zobacz Opis narzędzi Logman.exe, Relog.exe i Typeperf.exe . W ten sposób nie wiążesz sesji kolekcji z sesją. Logman, jako narzędzie wiersza poleceń, może być używany w skryptach i zaplanowanych zadaniach do uruchamiania i zatrzymywania sesji kolekcjonowania.
źródło
Nie ma nic złego w uruchamianiu perfmon na pudełkach produkcyjnych. Jest to stosunkowo niski klucz i może zebrać dla Ciebie wiele dobrych informacji. Jak dokładnie symulowałbyś obciążenia produkcyjne, gdybyś nie uruchomił analizy na serwerze produkcyjnym? Od Brenta Ozara we własnym linku:
Uruchomiłem perfmon na wielu produkcyjnych pudełkach Exchange bez żadnych niepożądanych efektów.
źródło
Od tamtej pory raz słuchałem Clinta Huffmana , który napisał PAL jako narzędzie do analizy dzienników Perfmon, raz na podcast. Na wszystkich naszych serwerach aplikacji produkcyjnych skonfigurowałem tak zwany rejestrator lotów. Ta praktyka przydała się do diagnozowania problemów i monitorowania trendów.
Poniżej znajduje się skrypt, którego używam do skonfigurowania automatycznie uruchamiającego się programu Perfmon Collector z czyszczeniem dziennika. W razie potrzeby można go podać liczniki wydajności z listą plików do zebrania (jeden na linię) lub plik XML progu PAL. Lubię używać plików PAL Threshold.
źródło
Robimy to dość często. Jest również niezbędny do ustalenia poziomu odniesienia w prawdziwym środowisku, abyś mógł później porównać, jeśli pojawią się problemy lub będziesz musiał przeprowadzić badanie zdolności.
Polecam jednak nie schodzić poniżej 10 sekund. Jeśli zbierasz wiele obiektów / liczników, a interwał jest zbyt częsty, może to wpłynąć na operacje.
Microsoft ma Kreatora PerfMon, który skonfiguruje zadanie dla Ciebie.
http://www.microsoft.com/downloads/details.aspx?FamilyID=31FCCD98-C3A1-4644-9622-FAA046D69214&displaylang=en
źródło
W idealnym świecie, w którym serwer produkcyjny dokładnie odzwierciedla to, co robi serwer deweloperów, a także jest dokładną kopią serwera deweloperów, perfmon nigdy nie powinien być wymagany na serwerze produkcyjnym, ponieważ wyniki byłyby takie same jak na serwerze deweloperskim. Oczywiście taka mityczna sytuacja nigdy się nie zdarza, dlatego musimy uruchamiać perfmon na serwerach produkcyjnych i nie ma w tym absolutnie nic złego. Między innymi możemy potrzebować użyć perfmon i innych narzędzi, aby dowiedzieć się, dlaczego serwer produkcyjny nie zachowuje się tak samo jak serwer deweloperów.
źródło
Dlaczego perfmon? Mam na myśli, że najnowsze wersje serwera SQL mają własną metodę wykonywania tego, w tym budowanie (centralnej) hurtowni danych liczników wydajności, które mogą być następnie sprawdzane i raportowane. Prowadzenie perfmon nie ma sensu.
Jak zawsze jestem zdumiony wszystkimi postami ludzi, którzy oczywiście nigdy nie czytają dokumentacji;)
http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-performance-data-collector/ to dobry początek. IMHO, które powinno działać na prawie każdym serwerze SQL używanym do celów produkcyjnych.
źródło
Nie ma nic złego w uruchamianiu Perfmona, jak wielu sugerowało, ale zamiast tego uruchomiłbym Profiler, z tymi samymi zastrzeżeniami, nie przechwytuj zbyt często, po prostu przechwytuj długie zapytania, tj. Czas trwania> x sekund lub procesor> xx lub czyta> xxxx; bardzo mały wpływ, a szybko zobaczysz zapytania, które najbardziej skorzystałyby na strojeniu.
źródło