Walczymy z tym problemem w produkcji, gdy nasza wydajność baz danych SQL Azure ulega znacznemu pogorszeniu. Wiemy, że mamy blokady na jednym ze stołów, ale te blokady nie są blokadami, są one długimi blokadami i po około godzinie wydajność wraca do normy. Próbujemy znaleźć wszystkie możliwe scenariusze, w jaki sposób uzyskujemy te długie blokady (każde zapytanie jest superszybkie, a wszystkie analizatory wydajności mogą pokazać nam, co powoduje długie blokady). Powodem tej kwestii jest obraz poniżej:Aktywne połączenia usługi Azure Sql przekraczają limit pul połączeń.
Out ustawień puli połączeń pozwalają tylko 200 połączeń mają być połączone. A większość razy mamy około 10-20 połączeń otwartych/połączonych z bazą danych. Wtedy nagle liczba aktywnych połączeń zaczyna rosnąć, a pula jest całkowicie zajęta. Podczas gdy liczba połączonych połączeń utrzymuje się poniżej 200, widzimy wiele aktywnych połączeń za pomocą sp_who2
osiągających połączenia 1,5k-2k (czasami 4k-5k).
Zbudowałem ten sam wykres za pomocą narzędzi do monitorowania portalu Azure. Ma inny okres rozliczeniowy, ale pokazuje ten sam problem:
ciąg połączenia używamy:
Data Source = [serwer] .database.windows.net; początkowa Katalog = [database]; utrzymują informacji security = True; użytkownik id = [user]; password = [hasło]; MultipleActiveResultSets = True; Connection timeout = 30; Max Pool Size = 200; Pooling = true; App = [NazwaAp]
Jak to jest? to możliwe biorąc pod uwagę ograniczenie puli połączeń 200 połączeń?
ps: nie ma okresowego zadania, długotrwałe zapytanie lub inne narzędzie robiące wszystko, sprawdziliśmy przy pomocy sp_who2
wszystkich aktywnych połączeń z bazą danych.
Witam, czy masz wiedzę o aplikacji działającą w sql, czy to zapewnia tę samą analizę wykresu lub pokazuje wszystkie wyjątki jako zależne od poziomu planu usługi istnieje ograniczenie liczby aktywnych równoczesnych połączeń, znalazłem to podczas testu obciążenia . –
Nie rozumiem tego: "Podczas gdy liczba połączonych połączeń utrzymuje się poniżej 200, widzimy, że aktywne połączenia osiągają połączenia 1,5k-2k" co to znaczy? Czy masz wiele maszyn łączących się z bazą danych? –
@MarkWest Zaktualizowałem swój post i dodałem wykres Azure Portal pokazujący ten sam problem. W tym okresie nie występują żadne wyjątki ani awarie usług zależnych (brak zakleszczeń, brak awarii połączenia). –