Azure Redis超时

时间:2017-09-19 12:27:21

标签: azure-web-sites stackexchange.redis azure-redis-cache

我有一个调用Azure Redis实例的Asp.Net Azure Web应用程序。我一直在Redis上超时。我得到的信息如下。

 inst: 1, mgr: Inactive, err: never, queue: 120, qu: 0, qs: 120, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, clientName: RD0004FFA37AA4, serverEndpoint: Unspecified/server.redis.cache.windows.net:6380, keyHashSlot: 11524, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=21,Free=8170,Min=200,Max=8191)

app和redis都位于同一地区(美国东部2)。

1 个答案:

答案 0 :(得分:0)

" in:65536 "在您的错误消息中指示客户端内核套接字接收缓冲区中有65536个字节准备好处理但尚未被客户端应用程序解析。

我在两种情况下看到了这一点:

  1. 需要调整ThreadPool设置(as described here)。但是,上面提供的错误消息并未将此显示为问题。检查更多错误的抽样,以确保在其他情况下不会发生这种情况。
  2. 客户端CPU正在运行。当CPU为高时,不会及时触发处理套接字接收事件的代码,因此处理代码不会解析内核缓冲区中的等待数据。检查客户端CPU历史记录。但请注意 - CPU中短暂的峰值可能不会显示在azure指标中,因为CPU是在周期性周期中捕获的(我认为每20秒)。如果这些样本之间发生尖峰并且很短,那么度量收集系统可能不会注意到它。
  3. 其他常见client-side causes are documented herecommon server-side errors are documented here