【问题标题】:stackexchange.redis throws timeout even after increasing timeout?stackexchange.redis 即使在增加超时后也会抛出超时?
【发布时间】:2018-10-03 18:06:02
【问题描述】:

尝试从缓存中删除时出现以下错误:

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)

我也尝试增加超时时间,但也没有用

【问题讨论】:

    标签: c# redis stackexchange.redis


    【解决方案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 的示例错误消息(构建 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,然后测试和调整为 需要。

    【讨论】:

    • 您好,感谢您的意见。我在哪里可以更改这些设置?代码的哪一部分?另外,您是如何提出 2 500 毫秒延迟的?分钟内每个线程是否需要 500 毫秒?
    • @xaisoft 你检查链接了吗?
    • 是的,我是在事后才看到的。谢谢。
    【解决方案2】:

    我遇到了同样的问题,并设法通过更改syncTimeout 参数来解决它。默认为 1000 毫秒。 https://stackexchange.github.io/StackExchange.Redis/Configuration.html

    根据消息来源,它还影响AsyncTimeouthttps://github.com/StackExchange/StackExchange.Redis/blob/3f7e5466c6bbff96a3ed1130b637a097d21f3fed/src/StackExchange.Redis/ConfigurationOptions.cs#L171

    【讨论】:

      猜你喜欢
      • 2019-10-21
      • 2019-10-26
      • 2015-02-05
      • 1970-01-01
      • 2019-01-10
      • 2021-11-23
      • 2021-02-04
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多