Open ZUOXIANGE opened 1 year ago
不是局域网防火墙有限制
或者 域名ip已发生变化
已经联系阿里云排查过网络问题,没有这方面的限制
可以自行做一个压力测试,错误确实是 socket 未连接导致。
可能的报错场景是什么呢?我自行模拟的QPS1000的场景不能复现这个,生产环境把连接池改小为20以下就极大程度缓解了这个问题,有什么可能的原因吗
模拟环境,必须网络也一样,不要测试本地。
我的意思很明白,网诺问题,上面给你分析了,
模拟只是让你论证。
就是发布到服务器测试的
我也约到这个问题了,你们解决了吗?
换成freeRdis 是否能够解决这个问题
我也约到这个问题了,你们解决了吗?
暂时通过把连接池改小缓解了
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis
测试结果可以和我同步一下吗?我目前也很需要
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis 为什么改小,不是改大更好吗?
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis 为什么改小,不是改大更好吗?
我也不是很清楚,但是这样改暂时有用.换用StackExchange.Redis的接口暂时还没有出现报错
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis 为什么改小,不是改大更好吗?
我也不是很清楚,但是这样改暂时有用.换用StackExchange.Redis的接口暂时还没有出现报错
好的谢谢,我也之能切换了,现在影响到业务了
确定切换之后运行的环境和之前出问题的环境一致把,因为切换还是挺需要时间的
换成freeRdis 是否能够解决这个问题
正在切换到StackExchange.Redis 为什么改小,不是改大更好吗?
我也不是很清楚,但是这样改暂时有用.换用StackExchange.Redis的接口暂时还没有出现报错
你们现在使用的怎么样了,我目前还是不行
切换了库也超时
那可能不是一个原因,我说的方法只针对我的情况有用
不知道你们的是否发布到linux模式使用,我在linux模式下会超时,不一定并发很高,k8s和docker模式下超时概率很大。但是在windows服务器下几乎没有。发一个接口,然后用jemter压测一下,很容易就超时了,可以试一下是不是。
基本都是远程访问超时,原因是处理不过来,压测超过了阀值(网络传输)
基本都是远程访问超时,原因是处理不过来,压测超过了阀值(网络传输)
不知道需要怎么处理
加钱升级服务器
是一个连接池用一个线程来管理吗? 线程池创建一个新的连接,是否需要一个新的线程? 线程调度是否可能导致超时?
System.Exception: 【10.0.10.10:6379/0】状态不可用,等待后台检查程序恢复方可使用。ERR max number of clients reached
Command: PING
---> CSRedis.RedisException: ERR max number of clients reached
System.Exception: 【10.0.10.10:6379/0】状态不可用,等待后台检查程序恢复方可使用。Unable to write data to the transport connection: 远程主机强迫关闭了一个现有的连接。.
---> System.IO.IOException: Unable to write data to the transport connection: 远程主机强迫关闭了一个现有的连接。.
---> System.Net.Sockets.SocketException (10054): 远程主机强迫关闭了一个现有的连接。
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 count)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at CSRedis.Internal.IO.RedisIO.Write(Byte[] data)
at CSRedis.Internal.RedisConnector.Call[T](RedisCommand`1 command)
at CSRedis.RedisClient.Write[T](RedisCommand`1 command)
at CSRedis.RedisClient.Ping()
at CSRedis.RedisClientPoolPolicy.OnCheckAvailable(Object`1 obj)
at CSRedis.RedisClientPoolPolicy.PrevReheatConnectionPool(ObjectPool`1 pool, Int32 minPoolSize)
--- End of inner exception stack trace ---
at CSRedis.Internal.ObjectPool.ObjectPool`1.GetFree(Boolean checkAvailable)
at CSRedis.Internal.ObjectPool.ObjectPool`1.Get(Nullable`1 timeout)
at CSRedis.CSRedisClient.GetAndExecute[T](RedisClientPool pool, Func`2 handler, Int32 jump, Int32 errtimes)
at CSRedis.CSRedisClient.ExecuteScalar[T](String key, Func`3 hander)
at CSRedis.CSRedisClient.Set(String key, Object value, TimeSpan expire, Nullable`1 exists)
at RedisHelper`1.Set(String key, Object value, TimeSpan expire, Nullable`1 exists)
我的也是经常这样,我隔几天就要重启一下
ERR max number of clients reached
近期我们生产环境出现这个错误的频率很高.Redis是购买的阿里云8GB主从版,QPS在500左右,高峰能到1000.查询以往的issue之后修改链接字符串如下,但是情况没有得到改善.还有什么我能尝试的方法吗?
还有这个错误也是一起发生的