You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

StackExchange.Redis高输入缓冲区in:65536偶发超时问题排查求助

问题判断准确性

你的判断是准确的,报错中in: 65536确实指向客户端TCP socket的输入缓冲区有64KB数据未被StackExchange.Redis的IO线程读取/处理,不属于服务端慢查询、工作线程不足的常见问题范畴。

同类问题常见诱因

  • 你使用的StackExchange.Redis v2.2.4版本存在已知的IO读取死锁bug,在高并发下偶发出现读取线程阻塞,导致缓冲区数据积压触发批量超时
  • ASP.NET工作进程的TCP接收缓冲区默认配置过小,当存在大值key(比如单个缓存值超过32KB)批量返回时,缓冲区被占满后触发TCP零窗口通知,服务端停止发送数据,最终超时
  • 4个工作进程共用同一个ConnectionMultiplexer实例的配置错误,导致连接复用冲突,IO调度阻塞

可行解决方案

  • 首先升级StackExchange.Redis到v2.6.112以上版本,该版本修复了多个IO读取线程阻塞的已知问题,是目前生产环境验证最稳定的版本
  • 调整ConnectionMultiplexer初始化参数,增加socketReceiveBufferSize配置到1MB,同时设置asyncTimeout和syncTimeout统一为10000ms
  • 确保每个ASP.NET工作进程单独初始化一个ConnectionMultiplexer单例,不要跨进程复用连接实例
  • 排查是否存在单key超过10KB的大缓存对象,对超过大小的对象做拆分压缩处理,避免单次返回数据量过大阻塞读取

内容的提问来源于stack exchange,提问作者Eric Butler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:54:06