tomcat数据库连接池个数计算

在配置tomcat数据库连接池时候,对配置的具体数值总是懵逼。这里给出具体建议。

首先上公式:
数据库连接池连接数 = ((核心数 * 2) + 有效磁盘数)
核心数如何得到?

linux 查看物理cpu的个数

 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看每个物理CPU中core的个数(即核数)

 cat /proc/cpuinfo| grep "cpu cores"| uniq

两数相乘即得到核心数。

有效磁盘数一般是一个。这样得到的数据库连接池个数是不是和自己猜想的小的很多?
下面进行理解一下。

单核 CPU同一时刻只能执行一个线程,然后操作系统切换上下文,CPU 核心快速调度,执行另一个线程的代码,不停反复,给我们造成了所有进程同时运行假象,其实这时候上下文切换的性能损耗很大。

其实,在一核 CPU 的机器上,顺序执行A和B永远比通过时间分片切换“同时”执行A和B要快,因为一旦线程的数量超过了 CPU 核心的数量,再增加线程数系统就只会更慢,而不是更快,因为这里上下文切换会耗费额外的性能。

ok,以后再遇到连接数的配置,切不可想着越大越好。

发布了137 篇原创文章 · 获赞 123 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/lz20120808/article/details/103683566