天天看点

c oracle数据库连接池,Oracle 数据库性能 与 应用连接池配置策略 关系说明

正常情况下,业务系统都是通过中间件来连接数据库。 对于一些大型的系统,并发高,业务忙,就需要更多的连接来访问数据库。 https://www.cndba.cn/dave/article/4360

但是对于数据库而言,连接并不是越多越好,过多的连接,不能不能增加系统的性能,反而会降低性能。

对于高并发的系统,不管是中间件,还是数据库,对会面临压力。 但是从性能角度来考虑,建议将这个压力留在中间件上,可以通过排队的方式进行处理。 如果将连接全部丢给数据库,那么会占用很多的内存资源,同时也会造成热点,产生latch:cache buffers chains 之类的等待事件,造成会话处理时间变长,业务性能和处理能力降低,同时主机CPU 资源还比较空闲。https://www.cndba.cn/dave/article/4360

因此对于OLTP类型的系统,建议对应用服务器的连接数按以下公式设置:https://www.cndba.cn/dave/article/4360

最大连接数 = 最小连接数 = 数据库CPU Core * [1-10]

说明:

1.CPU Core 是物理core 数,不是超线程之后的值。 可以通过/proc/cpuinfo 查询:https://www.cndba.cn/dave/article/4360https://www.cndba.cn/dave/article/4360

https://www.cndba.cn/dave/article/4360

[roo[email protected] ~]# cat /proc/cpuinfo | grep "model name" | wc -l

4

2.这里的1-10倍是参考值,要根据具体的业务进行调整,对于I/O 相对较多的,可以设置接近于10,如果是运算耗CPU相对较多的,建议设置更接近于1倍的值。https://www.cndba.cn/dave/article/4360https://www.cndba.cn/dave/article/4360

3.这里说的连接池是所有web加起来的数,在应用侧配置,而不是修改数据库的sessions 参数值。

4.对于RAC 环境,数据库CPU Core 是所有节点相加的值。

https://www.cndba.cn/dave/article/4360

https://www.cndba.cn/dave/article/4360

总结来说,就是通过对应用侧的连接池连接数的合理配置,让数据库能更高效的运行,尽可能的使用更多CPU和IO资源,而不是让数据库出现无效的资源争用,系统反而很空闲。

版权声明:本文为博主原创文章,未经博主允许不得转载。