从Redis缓存中检索数据时,我们收到以下超时异常。
‘执行GET inst: 2,mgr: Inactive,err: never,qu: 3,qu: 0,qs: 3,qc: 0,wr: 0,wq: 0,in: 18955,
IOCP:(Busy=4,Free=996,Min=2,Max=1000),WORKER:(Busy=0,Free=1023,Min=2,Max=1023),
请注意:每个超时异常都有不同的上述值。队列有时是2,1,3,qs也随队列值的不同而不同。此外,IN:值不断变化,如18955、65536、36829等。甚至IOCP也会发生变化:(Busy=6,Free=994,Min=2,Max=1000),WORKER:(Busy=0,Free=1023,Min=2,Max=1023)。
请注意:
在堆栈溢出中有许多类似的问题,并尝试了所有这些问题。但是,不走运。
我们最近将nuget包更新到了最新的稳定版本(v1.2.1)的StackExchange.Redis库。
这个异常似乎每次都发生在同一个地方,即使我们在不同的地方使用redis缓存。这是通过堆栈跟踪找到的。
此外,我们之前从未遇到过这个问题,就像我们使用了过去3年的相同解决方案一样,也从未遇到过这个问题。这种异常在过去的3个月中频繁发生,每天至少发生3-4次。
发布于 2017-04-25 01:25:37
看起来您正在经历线程池节流(从错误消息中的忙碌和最小值)。您需要增加IOCP和工作池线程的最小值。
https://gist.github.com/JonCole/e65411214030f0d823cb#file-threadpool-md有更多信息。
https://stackoverflow.com/questions/43577627
复制相似问题