Nasza aplikacja korporacyjna wykorzystuje SQL Server do przechowywania danych i jest przede wszystkim systemem OLTP. Jednak ważny składnik naszej aplikacji generuje znaczne obciążenie OLAP.
Nasze opóźnienie zapisu do tempdb wynosi około 100 ms. Ten trend utrzymuje się z czasem i ALLOW_SNAPSHOT_ISOLATION
jest wyłączony . Rozwiązujemy problem dotyczący tego problemu, a jedyną interesującą rzeczą, jaką do tej pory odkryliśmy, jest znaczna liczba wycieków mieszania i sortowania do tempdb. Przypuszczamy, że wynika to z obciążenia OLAP.
Pytanie
Jaka jest częstotliwość wycieków? Każdy? Ile wycieków / s? Nasze wstępne dane wskazują, że mamy około 2 wycieki mieszania na sekundę i 25 wycieków sortowania na minutę.
Czy to możliwe, że ta częstotliwość wycieków może być głównym winowajcą naszego opóźnienia zapisu w wysokiej tempdb?
Inne informacje
Używamy wielu plików dla tempdb zgodnie z zaleceniami dla liczby rdzeni. Pliki tempdb znajdują się w macierzy SAN RAID 1 + 0 (z wysokowydajnymi dyskami SSD), ale to samo urządzenie jak główne dane DB i pliki dziennika. Pliki tempdb mają wystarczająco duży rozmiar, aby rosły bardzo rzadko. Nie używamy flag śledzenia 1117 ani 1118. Inną zmienną jest to, że ta konfiguracja jest wspólna dla wielu różnych baz danych, z których wszystkie są obciążone od średniego do wysokiego.
Nasze opóźnienie zapisu wynoszące 100 ms jest znacznie większe niż dopuszczalne zakresy opóźnień zapisu tempdb, które znaleźliśmy w MSDN, umiejętnościach SQL i innych witrynach. Jednak opóźnienie zapisu w innych naszych bazach danych jest dobre (poniżej 10 ms). Na podstawie innych statystyk wydaje się, że intensywnie używamy tempdb, szczególnie w przypadku obiektów wewnętrznych. Wnikamy więc, aby dowiedzieć się, dlaczego nasza aplikacja tak intensywnie wykorzystuje obiekty wewnętrzne.
Rzeczywiste problemy z wydajnością na naszej platformie występują na różne sposoby. Monitorujemy liczniki perf, patrzymy na widoki DM i analizujemy zachowanie naszej aplikacji, aby spróbować zagłębić się w cechy wykorzystania zasobów w naszym systemie. Obecnie koncentrujemy się na wyciekach, ponieważ przeczytaliśmy, że wyciek ma drastyczny negatywny wpływ, ponieważ są wykonywane na dysku zamiast w pamięci. Wydaje się, że mamy bardzo dużą liczbę wycieków, ale chciałem uzyskać informacje na temat tego, co ludzie uważają za „wysoki”.