连接数对db系统的影响

来源:未知 责任编辑:智问网络 发表时间:2013-11-10 20:25 点击:
author:skate
time:2012/02/17
 
环境说明:
A.应用和db之间没有中间层,每台应用jboss服务器单独连接数据库
B.环境为oracle+linux+jboss+apache
 
 
连接数对db系统的影响
 
对于任何一个系统,他都不是一个封闭系统,如果对连接数不加以限制,当系统出现问题,如响应变慢等,
外部请求不断涌入系统中,使系统内部产生大量阻塞并不断恶化,使系统大部分在做阻塞请求的调度。
我们应该选择一个临界点,把连接请求控制一个范围,当系统响应变慢时,系统不再接受新的请求,
系统自身可以处理已有问题(或给人为处理留有时间),然后再接受新的请求。
 
 
从app,db两个层次来限制连接数请求,不仅在应用层限制,在db层也要限制连接请求
 
1. app层:
在应用层控制连接请求数量,如连接数过多,使其在应用层(jboss)排队,避免大量连接请
求打到db系统上,因为db系统在拒绝大量的连接请求也是非常耗资源的。
 
我们的jboss配置:
A:被阻塞的连接请求如果30s还没得到请求,会抛出错误,
B:一个连接空闲2分钟,jboss会关闭这个连接
 
说明:“jboss的连接请求有阻塞时很影响jboss的处理能力的,持有的数据库连接也不释放”,
如果再加上数据库响应也变慢,那整体将会更加恶化。
 
 
jboss连接池的最重要的作用就是可以节省建立连接所有需要的时间和资源
 
最小连接数:是根据这台jboss的正常并发连接来设置的,如果其设置的过大,不仅会大量占用db的资源;
            也为添加app服务器带来瓶颈,比如db的最大连接数100,每台应用的“最小连接数”都设置20,
            那么有5太应用就占满db的session,在添加新的app服务器,就会报数据库连接不够的错误。
            可以通过观察应用jboss的使用情况来设置。
 
最大连接数:是根据这台jboss正常最大并发连接数来设置的,不宜过大,如果其太大,就没有限制的作
            用了。根据监控统计数据,作为调整这个参数的依据。
 
 
2.db层:
db的session过多导致大量的session进程大量占用pga的空间,使pga的空间紧张,而sort_area_size、
hash_area_size是在pga中,使其供sql使用的空间就变小(使用tempfile,性能低下),sql处理速度就下降,
响应时间就变长,系统就会产生阻塞,如果这个时候,还有大量的session涌入db中,那就使db阻塞更加
严重,系统还需更多资源来完成大量阻塞进程的调度,本来系统可以自身可以修复这性能降低的问题,
然后因为大量新的session涌入,使其成为不可能。把数据库的连接数限制在数据库可以出问题机率
最小的范围内。db层限制连接数可以最大化的保证数据库的稳定性。
 
 
 
---end----

摘自 冰刀(skate)
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Request.ServerVariables 参数大全
    • 执行全文索引时出现权限不足的解决方法
    • 导入excel文件处理流程节点的解决方案
    • 查看sql修改痕迹(SQL Change Tracking on Table)
    • MongoDB安装为Windows服务方法与注意事项
    • App数据层设计及云存储使用指南
    • PostgreSQL启动过程中的那些事三:加载GUC参数
    • 写给MongoDB开发者的50条建议Tip1
    • Percolator与分布式事务思考(二)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1