首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StackExchange.Redis超时获取

StackExchange.Redis超时获取
EN

Stack Overflow用户
提问于 2016-11-02 00:14:47
回答 1查看 729关注 0票数 5

我在使用StackExchange.Redis时遇到了超时的问题。我在stackoverflow上找到的所有东西我都试过了。

这就是我要得到的:Timeout performing GET XXX, inst: 4, mgr: ProcessReadQueue, err: never, queue: 9, qu: 0, qs: 9, qc: 0, wr: 0, wq: 0, in: 65536, ar: 1, IOCP: (Busy=0,Free=1000,Min=400,Max=1000), WORKER: (Busy=35,Free=32732,Min=400,Max=32767)

在我得到的几乎所有异常中,只有queueqs在变化,并且它的值一直到11

我使用的是nuget版本的1.0.488。应用程序托管在Windows Server 2012上的IIS 8.5上。在那台机器上,我们有32 50的RAM,它的使用率为30-50%。我已经将maxmemory设置为16gb,将maxheap设置为22 to。已禁用保存到磁盘。我只使用它作为会话存储。

Redis服务器(版本x64-2.8.2402)安装在同一台机器上。这是我拥有的redis-cli info的url。

这也是我得到的exception的一部分:

代码语言:javascript
复制
System.TimeoutException: Timeout performing GET Airports, inst: 1, mgr: ProcessReadQueue, err: never, queue: 4, qu: 0, qs: 4, qc: 0, wr: 0, wq: 0, in: 65536, ar: 1, IOCP: (Busy=0,Free=1000,Min=400,Max=1000), WORKER: (Busy=20,Free=32747,Min=400,Max=32767), clientName: OWNEROR-G875DJG   at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in c:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 1927    at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in c:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:line 80    at StackExchange.Redis.RedisDatabase.StringGet(RedisKey key, CommandFlags flags) in c:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\RedisDatabase.cs:line 1451    at Resvoyage.Services.RedisCacheProvider.GetValue[T](String key) in c:\Development\thomalex\resvoyage\Resvoyage.Services\RedisCacheProvider.cs:line 88 

这就是我的连接字符串在<add key="LocalRedis" value="127.0.0.1:6379,connectTimeout=25000,allowAdmin=true,password=xxx" />中的样子。ConnectionTimeout是15000,我试着把它增加到25000

我还在IIS的machine.config中增加了minIoThread。下面是我放入<processModel autoConfig="true" minIoThreads="50" minWorkerThreads="50" maxWorkerThreads = "100" maxIoThreads = "100"/>的值

EN

回答 1

Stack Overflow用户

发布于 2016-11-10 16:50:28

阅读redis slowlog,看看在redis上是否有任何缓慢的查询。也许你正在使用key命令?Redis是单线程的,所以一个缓慢的查询可能会阻塞所有东西,而且由于客户端不会永远等待redis,你会遇到超时。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40364082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档