海底暴风雪

富在术数不在劳身,利在局势不在力耕

数据库连接池的连接数量确定

为什么需要连接池

一个数据库连接要经历TCP/IP的三次握手和四次挥手,如果数据库连接用完就丢在低并发下没有问题,在高并发下这里会成为服务的一个瓶颈,同时在django中最好不要新开进程使用orm操作数据库,会造成运行完的进程不释放数据据库连接,导致后续无数据库连接可用,如果使用连接池,则可以直接进行查询省去每次都需要进行的数据库连接过程

数据库连接池的的大小应该是多少

参考文章,在这篇文章中有介绍在oracle的测试中过多的数据库连接反而会使性能下降,其中Postgre数据库的测试数据在连接数到达50的时候性能开始下降,最后给出了数据库的连接池公式

连接数 = ((核心数 * 2)+ 有效磁盘数)

其中,核心数不应包含超线程(hyperthread),即使打开了超线程也是如此,如果热点数据全被缓存了,那么有效磁盘数实际是 0,随着缓存命中率的下降,有效磁盘数也逐渐趋近于实际的磁盘数。另外需要注意,这一公式作用于 SSD 的效果如何,尚未明了。

搜索

文章分类