asp.net - NET API 中的 Azure Redis 超时

标签 asp.net azure redis stackexchange.redis

我有asp net v4.6.1和StackExchange.Redis v2.0.61,自从redis的实现以来,我总是以随机的方式出现相同的错误, 如果有人可以提供帮助,这里是一些错误日志,我按照官方文档/微软论坛提供了有助于减少错误数量和更改线程池的步骤。

Timeout performing GET (2000ms), next: GET key, inst: 0, qu: 0, qs: 9, aw: False, rs: ReadAsync, ws: Idle, in: 0, serverEndpoint: Unspecified/{myserver}:6380, mgr: 10 of 10 available, clientName: {myclient}, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=38,Free=8153,Min=4,Max=8191), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) 

.

Timeout performing GET (2000ms), next: GET key1, inst: 1, qu: 0, qs: 6, aw: False, rs: ReadAsync, ws: Idle, in: 34344, serverEndpoint: Unspecified/{myserver}:6380, mgr: 10 of 10 available, clientName: {myclient}, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=39,Free=8152,Min=4,Max=8191), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) 

.

Timeout performing GET (2000ms), next: GET key2, inst: 12, qu: 0, qs: 10, aw: False, rs: ReadAsync, ws: Idle, in: 10159, serverEndpoint: Unspecified/{myserver}:6380, mgr: 10 of 10 available, clientName: {myclient}, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=25,Free=8166,Min=4,Max=8191), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) 

Azure 统计数据:

内存105MO~/CPU:0%~25%

enter image description here

谢谢;

最佳答案

您似乎正在客户端计算机上遇到请求/响应的备份,这会导致后续请求超时。这可能是由于线程匮乏或由于昂贵的响应处理逻辑。

在所有三个异常(exception)中,WORKER部分显示 Busy线程数大于 Min计算 .NET 在 ThreadPool 中保留的数量。您应该调整您的ThreadPool设置以增加最小计数或了解如何减少客户端中的工作线程数,使其小于 Min

在两个异常(exception)中,in: number显示 number大于 0。这表示响应流上有字节等待客户端应用程序读取。这可能是由于客户端应用程序发送请求的速度快于处理响应的速度造成的。缓慢的响应处理通常表明正在使用响应值完成昂贵的逻辑,尽管这可能会由于线程饥饿而进一步减慢。

https://stackexchange.github.io/StackExchange.Redis/Timeouts
https://learn.microsoft.com/azure/azure-cache-for-redis/cache-troubleshoot-client#traffic-burst

关于asp.net - NET API 中的 Azure Redis 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60616534/

相关文章:

c# - nHibernate 在多个线程上枚举相同的集合

JavaScript 计时器和页面导航

Azure AD token 颁发端点不返回 "scope"参数

azure - 使用 Azure AD 的 OAuth2 - 未获得用户同意

redis - .NET Core 是否支持 NLog.Redis?

javascript - 连接 Redis 不保留数据

javascript - 将变量从 ascx 传递到 javascript 时出现问题

c# - 从 ASP.NET Web 应用程序查询 Quickbooks

Azure函数应用程序创建

spring - Redis 还是 Ehcache?