csredis icon indicating copy to clipboard operation
csredis copied to clipboard

Connect to server timeout & Connection was not opened问题

Open walt-liuzw opened this issue 4 years ago • 23 comments

netcore2.1 引用csrediscore3.6.2版本

在性能压测的情况下,并发60,持续时间15min报错

redis异常:【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/44】状态不可用,等待后台检查程序恢复方可使用。Connect to server timeout","DateTime":"2020-07-03T12:48:35.0764406+08:00","Level":"Critical","Command":null}
csreids 错误【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/44】:Connection was not opened    at CSRedis.CSRedisClient.GetAndExecuteAsync[T](RedisClientPool pool, Func`2 handerAsync, Int32 jump, Int32 errtimes)

连接串: IP:6379,password=*****,defaultDatabase=1,testcluster=false,idleTimeout=15000,tryit=2,poolsize=300,preheat=1,syncTimeout=15000

walt-liuzw avatar Jul 07 '20 02:07 walt-liuzw

压测远程 redis-server 性能会处理不过来的。

而且压测前要先预热连接,preheat=100

2881099 avatar Jul 07 '20 02:07 2881099

压测远程 redis-server 性能会处理不过来的。

而且压测前要先预热连接,preheat=100

那生产上也是这样配置吗?因为压测就是模拟线上可能出现的并发请求

walt-liuzw avatar Jul 07 '20 03:07 walt-liuzw

是的,线上开预热,防止启动那瞬间忙不过来

2881099 avatar Jul 07 '20 03:07 2881099

是的,线上开预热,防止启动那瞬间忙不过来

能不能将连接串上的每个字段给出一般的最佳实践值? 现在我也有疑问 idleTimeout一般设置为15000 tryit设置为2 poolsize设置为300 preheat设置为100 syncTimeout设置为15000 这样的确可以解决问题,那会不会有其他的坑呢,所以这个串最佳实践是啥?每个字段受啥影响,一般设置为多少为最佳?

我么redis-server是共用阿里云实例的,如果我poolsize设置太大就会影响其他业务

walt-liuzw avatar Jul 07 '20 05:07 walt-liuzw

环境不同值也不同,没有最佳这一说,其实默认值就是你说的最佳,只不过适用局域网环境。

2881099 avatar Jul 07 '20 05:07 2881099

使用redis的串: defaultDatabase=34,testcluster=false,idleTimeout=15000,tryit=2,poolsize=500,preheat=10,syncTimeout=15000 报错: {【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:52:29,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 31.7454ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:52:39,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 31.7156ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:52:49,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 32.1354ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:52:59,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 29.4972ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:53:09,错误:(Connect to server timeout)

Request finished in 32.176ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:53:19,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 31.4303ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:53:29,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 31.2822ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:53:39,错误:(Connect to server timeout) Request starting HTTP/1.1 GET http://basic.uat.lunz.cn:80/health
Request finished in 561.313ms 200 application/json 【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】仍然不可用,下一次恢复检查时间:08/03/2020 11:53:49,错误:(Connect to server timeout)

【r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379/34】已恢复工作

walt-liuzw avatar Aug 03 '20 03:08 walt-liuzw

Connect to server timeout

连接超时导航的错误,默认是5秒超时。

connectTimeout=5000

2881099 avatar Aug 03 '20 04:08 2881099

r-bp153cb6bc443ba4pd.redis.rds.aliyuncs.com:6379

之前有测试过,阿里云这个地址,有时候 dns 解析超时慢。

2881099 avatar Aug 03 '20 04:08 2881099

好的,我后面继续监控

walt-liuzw avatar Aug 03 '20 05:08 walt-liuzw

换成Ip后,现在timeout 的确少点了,但是

csreids 错误【xxxxxxxx:6379/34】:Connection was not opened    at CSRedis.CSRedisClient.GetAndExecuteAsync[T](RedisClientPool pool, Func`2 handerAsync, Int32 jump, Int32 errtimes)

这个错误还是有

walt-liuzw avatar Aug 24 '20 03:08 walt-liuzw

用阿里云的要注意监测流量 阿里云实例 内网也是有流量限制的,超过流量 系统就崩了 我碰到过

willtoto avatar Oct 12 '20 09:10 willtoto

环境不同值也不同,没有最佳这一说,其实默认值就是你说的最佳,只不过适用局域网环境。

我问一下 默认的preheat值是多少

willtoto avatar Oct 12 '20 09:10 willtoto

环境不同值也不同,没有最佳这一说,其实默认值就是你说的最佳,只不过适用局域网环境。

我问一下 默认的preheat值是多少

访问量不大,preheat=1 就行。

如果访问量大,那么 preheat=50 也不为过。

2881099 avatar Oct 12 '20 09:10 2881099

环境不同值也不同,没有最佳这一说,其实默认值就是你说的最佳,只不过适用局域网环境。

我问一下 默认的preheat值是多少

访问量不大,preheat=1 就行。

如果访问量大,那么 preheat=50 也不为过。

我目前线上的连接串没有设置 preheat参数, 然后出现了Connection was not opened错误 我像知道下 连接串没指定的时候 这个参数值是多少 作为我更改的参考

willtoto avatar Oct 12 '20 09:10 willtoto

我最近也是频繁出现 Connection was not opened 有解决方案吗 也是阿里云rds

weile0769 avatar Mar 25 '21 15:03 weile0769

我最近也是频繁出现 Connection was not opened 有解决方案吗 也是阿里云rds

目前我们解决了 我微信zhimitec 你可以加我聊聊

willtoto avatar Mar 29 '21 14:03 willtoto

我最近也是频繁出现 Connection was not opened 有解决方案吗 也是阿里云rds

目前我们解决了 我微信zhimitec 你可以加我聊聊

拉个群聊吧,出现这个问题的太多了

LuceLuo avatar Apr 28 '21 06:04 LuceLuo

@willtoto 这个问题解决了吗,有没有群

jsonzhuwei avatar Sep 14 '21 04:09 jsonzhuwei

咋解决的,大佬们,我也想解决 @willtoto

ajdwfnhaps avatar Oct 30 '21 16:10 ajdwfnhaps

我也碰到了同样的问题,频繁redis错误:Connection was not opened at CSRedis.CSRedisClient.GetAndExecuteAsync[T](RedisClientPool pool, Func`2 handerAsync, Int32 jump, Int32 errtimes)求解!!!

Xinboo avatar Dec 14 '21 02:12 Xinboo

redis集群模式运行,报告csreids 错误【172.21.xx.xxx:6379/0】:Connection was not opened at CSRedis.CSRedisClient.GetAndExecuteAsync[T](RedisClientPool pool, Func`2 handerAsync, Int32 jump, Int32 errtimes)

netkey avatar Dec 31 '21 01:12 netkey

这个问题并发压力大情况下,使用Task 异步线程容易出现这个问题,跟redis 第三方组件关系不大,很多开源的redis组件在高并发多线程工作情况下都会出现这个问题,StackExchange.Redis、csredis 等。默认的工作线程是cpu核心数,系统创建新的线程会比较慢, 设置最小线程池可以提高性能,具体设置多大需要根据并发情况进行评估,但是也不是越大越好,最大是1000左右,一般100-250是比较合理,具体的看这篇文章,设置最小线程池 压测过后解决问题。 具体的可以参考以下文章 https://www.cnblogs.com/luminqiangblogs/p/14639688.html

e-jlion avatar Jan 01 '22 16:01 e-jlion

这个问题有完全解决的吗?

wf504071976 avatar Mar 09 '23 03:03 wf504071976

这个问题有完全解决的吗?

看上面回复,和处理速度有关

2881099 avatar Mar 09 '23 09:03 2881099