redis抛出超时错误

redis抛出超时错误,redis,stackexchange.redis,Redis,Stackexchange.redis,我的服务器几个小时前开始抛出以下异常,原因未知。 这是一个web应用程序。 有人能帮忙吗?我能做什么 ,执行GET-SomeKey时超时,inst:1,mgr:ProcessReadQueue,err:never,queue:12,qu:0,qs:12,qc:0,wr:0,wq:0,in:1702,ar:1,客户端名称:SSD41ACU10147, IOCP:(忙=0,空闲=1000,最小=4,最大=1000), 工人:(忙=11,空闲=8180,最小=4,最大=8191),本地CPU:不可用(

我的服务器几个小时前开始抛出以下异常,原因未知。 这是一个web应用程序。 有人能帮忙吗?我能做什么

,执行GET-SomeKey时超时,inst:1,mgr:ProcessReadQueue,err:never,queue:12,qu:0,qs:12,qc:0,wr:0,wq:0,in:1702,ar:1,客户端名称:SSD41ACU10147, IOCP:(忙=0,空闲=1000,最小=4,最大=1000), 工人:(忙=11,空闲=8180,最小=4,最大=8191),本地CPU:不可用(请查看 本文介绍了一些常见的客户端问题 可能导致超时:)

,超时执行GET-SomeKey2,inst:2,mgr:ProcessReadQueue,err:never,queue:33,qu:0,qs:33,qc:0,wr:0,wq:0,in:1141,ar:1,客户端名称:SSD41ACU10147, IOCP:(忙=0,空闲=1000,最小=4,最大=1000), 工人:(忙=18,空闲=8173,最小=4,最大=8191),本地CPU:不可用(请查看 本文介绍了一些常见的客户端问题 可能导致超时:)

堆栈跟踪

在 C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs中的StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](消息消息,ResultProcessor
1处理器,ServerEndPoint服务器):第2044行at
C:\TeamCity\buildAgent\work\3ae0647004edff78\StackExchange.Redis\StackExchange\RedisExchange\RedisBase\RedisBase.cs中的StackExchange.RedisBase.ExecuteSync[T](消息消息,结果处理器
1处理器,ServerEndPoint服务器):第81行 C:\TeamCity\buildAgent\work\3AE064704EDFF78\StackExchange.Redis\StackExchange\Redis\Redis\RedisDatabase.cs中的StackExchange.RedisDatabase.HashGetAll(RedisKey,CommandFlags标志):第130行,位于

编辑: 是否可能我有太多未关闭的连接

我有一个静态属性:

publicstaticconnectionmultiplexer Redis=ConnectionMultiplexer.Connect(“localhost:1234,abortConnect=false”)

然后从每个我需要查询redis的地方开始:

IDatabase db=GlobalStaticClass.redis.GetDatabase()

这种方法有问题吗

编辑2[对marc的回答]:

  • 我有一些非常大(1MB)的键,还有一些仅仅是数字或小字符串。但这并不新鲜
  • 几个月来都是这样。今天,2小时前,所有的redis请求突然开始抛出异常。(附带的例外情况只是一个示例)

  • 不多。redis从未接近瓶颈

  • Slowlog没有显示任何有趣的东西

  • 我该怎么查呢
  • 现在就试试 编辑3: 重置IIS可在15-30分钟内解决此问题,然后它将再次启动,永不停止

    编辑4:这是托管公司的过错。与redis没有真正的联系

    这导致我们所有的服务器都非常慢,redis是第一个返回超时错误的服务器

    你的回答确实帮助我找到了责任人

    谢谢大家。

    总体方法应该很好;出站是清晰的,我们有少量的入站数据,我们有一个活跃的读卡器——这看起来很健康。因此,我们进入上下文:

    • SomeKey
      中的数据大小是多少
    • 服务器有多忙
    • 是否指示任何可以解释服务器阻塞的特别长时间运行的操作
    • 服务器日志是否显示了长时间的数据库持久性操作或从属操作,这可能会解释问题
    • 作为最后手段:您是否尝试过增加同步超时?(请参阅搜索
      syncTimeout
    总体方法应该很好;出站是清晰的,我们有少量的入站数据,我们有一个活跃的读卡器——这看起来很健康。因此,我们进入上下文:

    • SomeKey
      中的数据大小是多少
    • 服务器有多忙
    • 是否指示任何可以解释服务器阻塞的特别长时间运行的操作
    • 服务器日志是否显示了长时间的数据库持久性操作或从属操作,这可能会解释问题
    • 作为最后手段:您是否尝试过增加同步超时?(请参阅搜索
      syncTimeout

    从超时错误消息中(请注意,“忙”的值大于“分钟”的值),您正在经历线程池增长节流

    超时执行GET-SomeKey,inst:1,mgr:ProcessReadQueue,err:never,queue:12,qu:0,qs:12,qc:0,wr:0,wq:0,in:1702,ar:1,clientName:SSD41ACU10147,IOCP:(忙=0,空闲=1000,最小=4,最大=1000),工作者:(忙=11,空闲=8180,Min=4,最大=8191)


    以下是一些你可以尝试的事情的解释和建议

    从超时错误消息中(请注意,“忙”的值大于“分钟”的值),您正在经历线程池增长节流

    超时执行GET-SomeKey,inst:1,mgr:ProcessReadQueue,err:never,queue:12,qu:0,qs:12,qc:0,wr:0,wq:0,in:1702,ar:1,clientName:SSD41ACU10147,IOCP:(忙=0,空闲=1000,最小=4,最大=1000),工作者:(忙=11,空闲=8180,Min=4,最大=8191)

    以下是一些你可以尝试的事情的解释和建议