在野外捕捉到这个随机异常:
System.Web.HttpUnhandledException(0x80004005):类型异常 抛出'System.Web.HttpUnhandledException'。 ---> System.TimeoutException:执行SETNX的超时 GeoIP。[删除],inst:1,mgr:不活动,错误:从不,队列:2, qu:0,qs:2,qc:0,wr:0,wq:0,in:0,ar:0,clientName: PRD-VM-WEB-1,serverEndpoint: 未指定/ [删除] .redis.cache.windows.net:6380,keyHashSlot: 3519,IOCP :(忙碌= 0,自由= 1000,最小值= 2,最大值= 1000),工人: (Busy = 1,Free = 32766,Min = 2,Max = 32767),Local-CPU:不可用(请 看看这篇文章,了解一些常见的客户端问题 可能导致超时: https://github.com/StackExchange/StackExchange.Redis/tree/master/Docs/Timeouts.md) 在 StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl [T](消息 消息,ResultProcessor
1 processor, ServerEndPoint server) at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor
1处理器,ServerEndPoint服务器)
使用部署在Azure上的StackExchange.Redis。
从referenced cached document我可以看出它看起来很好,或许Local-CPU
不可用的值是问题吗?
有谁知道这会引起什么?
答案 0 :(得分:0)
当您查看正在接收的错误时,您是否看到任何超时错误,其中BUSY值大于IOCP或工作线程池的MIN?如果是这样,线程池限制可能是原因。这通常发生在突发场景下。这通常伴随着高CPU,这也可能导致超时。这里解释了Threadpool限制:https://gist.github.com/JonCole/e65411214030f0d823cb#file-threadpool-md。
此外,以下是一些最佳做法:https://gist.github.com/JonCole/925630df72be1351b21440625ff2671f#best-practices-for-azure-redis
答案 1 :(得分:0)
示例
SET key value EX timeout NX
SET hello world EX 100 NX