Mam problemy, że punkt końcowy/connect/introspect mojego serwera tożsamości jest czasami bardzo wolny (10 sekund na jedno połączenie). Jak widać poniżej, większość połączeń (18k) działa szybko (< 250ms).Profiler BLOCKED_TIME w IdentityServer4/Newtonsoft.Json
mam włączony nowy Application Insights profiling i większość powolnych śladów wyglądać następująco:
Jak powiedział na Application Insights profiler page:
BLOCKED_TIME
wskazuje kod czeka na inny zasób do być dostępny, s ucha oczekującego na obiekt synchronizacji, oczekujący , aby wątek był dostępny lub oczekiwanie na zakończenie żądania.
Ale nie mam powodu, aby sądzić, że to powinno na coś czekać. Nie ma spodziewanych żądań, więc nie sądzę, że nie ma wystarczającej liczby wątków lub czegoś takiego. Pamięć nie jest problemem w naszym planie usług aplikacji, ponieważ zawsze wynosi około 40%. Również wykopałem źródło IdentityServer4, ale nie mogłem zidentyfikować żadnej przyczyny tego. Więc teraz utknąłem. Czy ktoś może wskazać mi możliwe przyczyny tych powolnych wniosków? Lub wskazać mi w dobrym kierunku, aby ustalić przyczynę? Każda pomoc będzie doceniona!
Edycja z dodatkowymi informacjami: używamy IdentityServer4.EntityFramework do przechowywania tokenów referencyjnych w bazie danych sql azure. Sprawdziłem Statystyki aplikacji, a zapytania w tych powolnych żądaniach wykonują w czasie krótszym niż 50 ms. Zgaduję, że to nie jest baza danych.
Czy możesz wyświetlić liczbę połączeń, jak również czas podany w tym wyniku profilu? – dbc
Nie widzę opcji wyświetlania liczby połączeń, ale myślę, że nie byłoby to zbyt wiele, ponieważ jednorazowo serializuje token. – Zenuka