我遇到的问题是,我的IdentityServer的/ connect/introspect端点有时非常慢(一次调用10秒)。正如您在下面看到的,大多数呼叫(18k)执行得很快(< 250ms)。ProfileServer BLOCKED_TIME在IdentityServer4/Newtonsoft.Json
我已经启用新的Application Insights profiling,最慢的痕迹看起来像这样:
由于在Application Insights profiler page说:
BLOCKED_TIME
指示代码正在等待另一个资源 可用,s如等待同步对象,等待 使线程可用,或等待请求完成。
但我没有理由相信这应该在等待什么。请求没有秒杀,所以我不认为没有足够的线程可用或什么。对我们的应用服务计划来说,内存似乎没有问题,因为它总是在40%左右。我也挖掘了IdentityServer4的来源,但无法找到任何原因。所以现在我有点卡住了。任何人都可以指出我对这些缓慢请求的可能原因吗?或者指出我确定一个原因的好方向?任何帮助都感激不尽!
用一些额外的信息编辑:我们使用IdentityServer4.EntityFramework来将参考标记存储在一个sql azure数据库中。我查看了Application Insights,那些慢速请求中的查询在50ms以内执行。所以我猜这不是数据库。
你可以显示呼叫计数以及该配置文件结果中所用的时间吗? – dbc
我没有看到显示调用计数的选项,但我猜它不会太多,因为它只会序列化一次令牌。 – Zenuka