[原创]XX公司数据库缓慢问题_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2772 | 回复: 0   主题: [原创]XX公司数据库缓慢问题        下一篇 
jie.liang
注册用户
等级:少校
经验:1003
发帖:77
精华:0
注册:2013-10-11
状态:离线
发送短消息息给jie.liang 加好友    发送短消息息给jie.liang 发消息
发表于: IP:您无权察看 2014-3-24 17:14:25 | [全部帖] [楼主帖] 楼主

1、问题描述

    最近一段时间每天16点左右,数据库服务器中的一个节点(landingbj.com)上CPU利用率突然变为100%,其中90%以上的CPU是系统进程使用的,而且很难下降。服务器上客户端连接的进程数激增。后来从系统工程师监控的结果来看,服务器的虚拟内存有满的情况发生,数据库的内存使用情况没有异常。

2、问题分析

    系统工程师分析结果为:当CPU使用100%的时候,操作系统主要把CPU耗费在切换数据库进程上,而且切换的数据库进程一直处于空闲状态,并没有做实际的工作。
    从数据库服务器端监控结果来看,每个数据库服务器上,客户端连接的进程数一般稳定在1200个左右,当出现问题时候,客户端连接的进程数最大会增加到2000,但是真正连接上数据库的并不多,没有超过设置的最大值(800),激增的连接中,绝大部分都是两层结构的应用中的连接。
    应用程序中,三层结构中的数据库连接数有最大值,两层结构应用中数据库的连接数是没有限制的,当业务请求比较慢的时候,操作人员可能会不停的刷新请求,这样能造成大量的数据库连接。Database link的连接,是通过数据库中表的触发器使用的,创建database link的时候,并没有指定为shared,导致很多database link的连接为inactive状态。

3、解决方法

  1. 增大出问题接点数据库的内存,增加虚拟内存。
  2. 把dblink 的连接,由原来的连接到集群数据库调整到连接到单点数据库,以避免DFS lock handle等待时间过大。
  3. 两层结构的应用程序,调整数据库连接部分的代码。当连接数据库的数目增大到一个值后,不在对数据库请求新连接(没有执行)。
  4. 两层结构的应用,数据库连接由原来指向集群,修改为指向不出问题的接点(landingbj.com),以减轻出问题数据库的压力。
  5. 根据awr报表中的信息,修改消耗CPU资源比较大的SQL。



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论