Java数据库连接池(三)
连接池监控工具
前两篇博文阐述了连接池都有一些共性的地方,其结构大致相同,都具备几个概念,DataSource,Connection,ProxyConnection,Pool,PooledDataSource,PhysicalConnection、PooledConnection。那么是否可以根据连接池的这些特性,开发出一款针对于大部分连接池的监控工具,通过该监控工具我们可以在相对的环境中,对连接池的一些参数配置给出一些指导性建议,并根据这些建议结合自己的实际场景中的监控数据,做一次连接池的调优。这是我的一个初步的想法。
监控工具的监控维度
首先要确定是监控工具的监控维度,也就是我们需要监控哪些数据,哪些数据会对我们连接池的配置进行优化会给出直接性的指导性依据。哪些数据是可有可无的。
我们看一下这里数据库的一般参数,这里需要的强调的是,我们监控的维度只包括大部分数据库通用的一些特性或参数,由这些参数或特性决定体现出来的影响性能的地方。所以不包括一些连接池所特有的数据。
那么这些参数和特性我已经在前一篇的博文中详细阐述过了。我们先从参数开始下手,其实最终我们是通过参数的调优来影响了连接池的性能,所以连接池的监控维度也应当与这些参数配置相关联,围绕着这些参数进行展开。
我们先来再次阐述一下连接池如何使用这些参数进行工作的。连接池启动后,连接池先初始化initNum个连接,如果压力增大,连接池会不断的创建新的连接,直到达到MaxActiveNum个连接,这里有个问题就是如果initNum和MaxActiveNum之间相差太大的话,会造成每次获取连接都是重新创建一个连接,