(连接)池参数配置的核心含义
来源:互联网 发布:mac 制作吉他谱的软件 编辑:程序博客网 时间:2024/06/08 19:51
1.池
在很多场景下,一些相对耗时的网络资源都会预先创建好,并放入一个池中进行缓存;比如
数据库连接池、jedis连接池等。在配置池的时候,会涉及到两个必须的参数:maxIdle、maxTotal。
maxIdle指空闲时保持的连接数;maxTotal表示最大可创建的连接数(就是池子最大上限);
2.maxIdle和maxTotal核心含义
池的思路是预创建+缓存,目的是为了在客户端大量急需时,能够保证有“足够”的连接资源可用,只有在不够时,才会触发新创建(不能超过maxTotal)。
对这个里面的大量急需情况分析下原因:
1.从池中拿连接的速度大于放回池的速度,如果未超时,会等;如果等超时,会报错,然后触发新创建;
等超时了,一方面说明了连接资源被长期占用着(这个时候要考虑下服务端的处理能力是不是效率很低),另一方面
说明了这点maxIdle确实不够用,在等池子中可用的连接超时后,会创建新连连接,等结束空闲一段时间后,池中的大小会退回到maxIdle水平;
因此,maxIdle说明了程序启动时真实需要的连接数(这个参数保证不报错情况下需要的连接数),maxTotal表示该客户端最大能创建的连接数(这个参数控制了一个服务端的连接资源不能都分给一个客户端);
3.如何设置maxIdle和maxTotal
maxTotal的设置要参考服务端的可用的资源总数是多少,并且打算把连接分给了几个客户端,进行平分下就可以;
maxIdle的设置就是一个高并发场景下起到“缓冲”作用,该值的设置不能太高(太高,会占着连接,新加入的客户端会无连接可用),也不能太低(太低,会导致高并发时可能报错);
这个时候就需要客户端限流(测试满足需求的场景下,一个客户端到底真的需要几个连接数,没必要不够就创建,创建的时候可能比设置超大等待时间还糟糕) ,
另外,把等池中可用连接的等待时间设置的稍大点(这样从池中拿连接的速度小于放回池的速度)。
总结
maxIdle和maxWaitMillis(等池中可用连接时间)两个参数的意义大于maxTotal,因此多从这两个参数的调整来考虑池的设置;
- (连接)池参数配置的核心含义
- shiro 配置参数的含义
- sco核心参数含义1
- Struts配置中param参数的含义
- iwpriv 配置 WiFi 的参数含义解说
- NM_CONTROLLED的含义以及网卡配置参数
- 配置中的参数含义
- DBCP连接池配置参数
- C3P0连接池参数配置
- Redis连接池参数配置
- ./configure配置的参数 交叉编译 host build target的含义(转)
- Tomcat JNDI参数配置含义
- tomcat Context 配置参数含义
- Hbase参数配置及含义
- DesiredCapabilities参数配置及含义
- 配置参数hibernate.hbm2ddl.auto 各个取值的含义
- spring cron-Expression 与linux crontab 的配置参数含义
- struts2 中Struts.xml -- constant配置参数的含义
- 单例模式的几种实现方式
- 使用dd命令增加swap(虚拟内存)大小
- ADB主动升级命令
- 6、class的基本使用—ES6学习笔记
- CentOS7.2 chrony替代ntp搭建时间服务器
- (连接)池参数配置的核心含义
- 19. 示波器的使用
- 关于一款游戏的无责任猜想
- MySQL 5.7 (2GTID,binlog)
- javascript 字符串方法
- 20. FlashLight调试日志
- 收集Android实际开发中的bug总结与解决方法(第一节)
- vi vim 删除命令
- Android O 编译变化