mongodb 驱动的连接池大小的设置一般应该控制 为多少最合理?


  • Lv 1

    如题,mongodb 驱动的连接池大小的设置一般应该控制 为多少最合理?


  • 大中华区MongoDB顾问

    默认情况下大部分驱动的连接池大小设置为100,但是具体多少合适完全是根据你的系统压力来决定的,没有确定的“最合理”。通常来说,如果连接数能够保持在一个比较稳定的值波动不大就可以了。而要保持在一个稳定的值,通常不是由连接多少决定的,而是由系统的处理能力。比如:

    1. 系统能够处理100 QPS,但是实际压力是101QPS,所以会有1个请求地遗留到下一秒;

    2. 下一秒再进来101个请求,就会有2个请求遗留到下一秒;

    以此类推,遗留到下一秒的连接就会越来越多,占用的连接也会越来越多。

    相反,假设系统处理能力是200QPS,但是实际压力只有100QPS,系统甚至都不需要100个连接,有50个连接就足以在1秒内处理所有请求了。

    所以有多少连接往往不是问题的根本,处理速度才是应该关注的问题。不过照上面的分析,如果连接数的持续不断增长,那代表的问题并不是连接不够,单纯增加最大连接数也将无济于事,应该是从每个查询的优化下手才能解决问题。


  • Lv 1

    @zhangyaoxing

    谢谢您的解答



  • @zhangyaoxing

    回答得真好。请问,如果连接池大小为100,有60个连接正在使用中,在某一时刻,有100000个连接同时请求,这个时候会造成系统宕机吗?如果系统宕机了,那么原来正在使用中的60个连接会不会发生资料的丢失?


  • Lv 1

    @asd

    我覺得當機應該不會. 頂多拒絕連線

    如果真的當機, 原有的連線資料寫入是否成功很難說, 不過應用端會視為失敗


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待