seefan
seefan
非常期待类似的功能
暂时没有发现这个情况哦,能不能给个示例
能否给一下你说的超大value的大小
暂时没有发现你说的情况,你可以在显示错误信息时,调用goerr.Error(err).Trace()来显示更多的内容,我们可以根据仔细的信息来分析。
把你的代码发我一份吧,我测试一下
我刚测试了一个小时,10个纯程在跑,并没有出现你说的问题。 我想确认以下内容, 1、你是如何获取连接的,是用NewClient还是GetClient 2、是否持有了获取的连接。
1、我看每次出错附近都这类似这样[WARN] [elapsed > 100ms]的提示,能大概描述一下这个错误是什么吗。 2、从日志中可以看到,每秒并发不高,只有1到2个,但有大量的active连接,这个说明连接是直在用,且没有被回收,是有这样的业务逻辑么。还是说是因为连接无法回收导致的active居高不下。 3、每一次获取范围保存的kv的值有多大,是否达到几M Trace:pool is busy,can not get new client in 5 seconds,wait count is 1 这个提示是说连接池内没有可以使用的连接了,所以我们需要检查一下为什么连接在使用后无法回收。
通过Avaliable来控制,它是一个队列,我会把连接的位置放到队列里管理
看你说的情况,感觉是是autoclose在释放时有问题,我还在分析 另外,你关闭AutoClose后,用普通方式是否存在问题呢?
只是调整回收后复用的规则,把原来的平均复用改成优先头部利用了,不影响回收。 自动回收方面你出现的问题还没有找到原因。 另外我看到你有Close1和Close2两处打印,能告诉我一下大概的位置么?