尝试从缓存中删除时出现以下错误:
Timeout performing DEL test.com, inst: 0, mgr: ExecuteSelect, err: never, queue: 0, qu: 0, qs: 0, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, clientName: ORLWS052, serverEndpoint: Unspecified/pub-redis-16778.us-west-2-1.1.ec2.garantiadata.com:16778, keyHashSlot: 6928, IOCP: (Busy=3,Free=997,Min=4,Max=1000), WORKER: (Busy=4,Free=4091,Min=4,Max=4095), Local-CPU: 100% (Please take a look at this article for some common client-side issues that can cause timeouts: https://github.com/StackExchange/StackExchange.Redis/tree/master/Docs/Timeouts.md)
更新时我也会收到类似的超时。
我不知道怎么读这个,所以如果有人知道那会有帮助。
我尝试更新或删除的密钥大小为5515字节。
我还运行了slowlog get
命令,没有(长度为0)
我也试图增加超时时间,但这不起作用
答案 0 :(得分:1)
IOCP: (Busy=3,Free=997,Min=4,Max=1000), WORKER: (Busy=4,Free=4091,Min=4,Max=4095), Local-CPU: 100%
请检查您的ICOP,WORKER忙线程和最小线程。 CPU也是100%。 timeoutHelpLink已在最新版本中更新。
https://stackexchange.github.io/StackExchange.Redis/Timeouts
如果我们查看来自StackExchange.Redis的示例错误消息(build 1.0.450或更高版本),您将看到它现在打印ThreadPool统计信息(请参阅下面的IOCP和WORKER详细信息)。
System.TimeoutException: Timeout performing GET MyKey, inst: 2, mgr: Inactive, queue: 6, qu: 0, qs: 6, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, IOCP: (Busy=6,Free=994,Min=4,Max=1000), WORKER: (Busy=3,Free=997,Min=4,Max=1000)
在上面的例子中,您可以看到IOCP线程有6个 忙线程,系统配置为允许4个最小线程。 在这种情况下,客户端可能会看到两个500毫秒的延迟 因为6> 4。
请注意,如果增长,StackExchange.Redis可以达到超时 IOCP或WORKER线程受到限制。
建议:鉴于上述信息,建议设置 IOCP和WORKER线程的最小配置值 大于默认值。我们无法提供一刀切的服务 关于这个值应该是什么的指导因为一个人的正确价值 应用程序对于其他应用程序来说太高/太低。这个设置 也可以影响复杂的其他部分的性能 应用程序,因此您需要根据具体情况微调此设置 需要。一个好的起点是200或300,然后进行测试和调整 需要的。
答案 1 :(得分:0)
我遇到了同样的问题,并设法通过更改syncTimeout
参数来解决了这个问题。默认情况下为1000毫秒。
https://stackexchange.github.io/StackExchange.Redis/Configuration.html
根据消息来源,它也影响AsyncTimeout
。
https://github.com/StackExchange/StackExchange.Redis/blob/3f7e5466c6bbff96a3ed1130b637a097d21f3fed/src/StackExchange.Redis/ConfigurationOptions.cs#L171