今天早上回到办公室没多久就接到了新炬过来的电话,说我们的数据库服务器swap使用已经过了告警基准线,让我去看看应用是否还运行正常。于是赶紧登陆服务器查了一下swap的活动情况:

[cramer@zhzy-db01-p780:///]#lsps -s

Total Paging Space   Percent Used

98304MB               35%

确实,swap空间使用了30多G,内存交换活跃,怕是数据库不能幸免于难了。于是再去生成一份AWR报告,看看整体上数据库各项的指标怎么样:https://www.cndba.cn/cndba/arealman/article/381

https://www.cndba.cn/cndba/arealman/article/381

从系统负载上可以看出,数据库正经历一场灾难,各项统计指标都超出了平常的标准,对比平时的统计数据,read by other session 等待次数从平时的数千次暴增到240W+,平均等待时间从5ms 增加到21ms。gc buffer busy 与 db file scattered read 也是如此。https://www.cndba.cn/cndba/arealman/article/381

https://www.cndba.cn/cndba/arealman/article/381

先来看看数据库的环境吧:

操作系统 AIX 6.1

操作系统物理内存 128G

https://www.cndba.cn/cndba/arealman/article/381https://www.cndba.cn/cndba/arealman/article/381

数据库的配置如下:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi

PL/SQL Release 10.2.0.5.0 - Production

CORE10.2.0.5.0Production

TNS for IBM/AIX RISC System/6000: Version 10.2.0.5.0 - Productio

NLSRTL Version 10.2.0.5.0 - Production

SQL> show parameter sga

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 90G

sga_target                           big integer 80G

SQL> show parameter pga

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

pga_aggregate_target                 big integer 10G

SQL>

操作系统频繁使用swap,原因基本是系统内存不够用了。从数据库的内存配置来看,128G总内存 ,配置给ORACLE 100g ,留给操作系统约30G,讲道理,应该是够用的了。

来看看oracle实际使用的内存:

select sum(pga_alloc_mem)/1024/1024/1024 Gb_Alloc from v$process ;

36.3

select sum(value)/1024/1024/1024 as Gb  from v$sga ;

90

看出问题来了,实际使用内存数量为:90+ 36 = 126G,已经耗干了操作系统的所有内存,不使用swap才怪呢。很容易看出,问题的关键在于PGA这里,pga_aggregate_target 配置为10G,但是实际使用了36G,这是有可能的,pga_aggregate_target配置的值是个软限制,实际使用pga的使用是可以超过这个限制的。oracle会根据这个配置去限定每个服务进程使用的pga使用上限。假设在某一时段,有大量的进程都需要排序操作、大表hash join等等,从而从PGA里分走的都是一个上限值,那么就会发生上面的这种情况。

故障很容易定位到源头。应用系统有一个很频繁的查询,大概一分钟会被查询200次左右,该查询的逻辑相当的复杂,不过之前优化过,整体的开销已经不高了。昨晚因为一个需求,对查询做了一点点改动,仅仅是局部测试后就丢上生产了,结果在实际生产中,每一次查询都会有十几个大表进行hash连接。想一想,一分钟200次的查询,每次查询计算过会分走约1G的PGA空间,可想而知,结果会怎么样。

PS:应用配置了连接池,限制活动的连接数量为50个,因此PGA的消耗36G,数据基本吻合上面的估算了。https://www.cndba.cn/cndba/arealman/article/381

https://www.cndba.cn/cndba/arealman/article/381https://www.cndba.cn/cndba/arealman/article/381

赶紧下线该应用并做优化,准备写故障报告,做好挨批的姿态。自己种的果,再苦也得自己咽了。。。。。。

Written In 11-Oct-16

https://www.cndba.cn/cndba/arealman/article/381

版权声明:本文为博主原创文章,未经博主允许不得转载。

swap pga

连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程相关推荐

  1. net oracle连接池配置,Oracle ODP.NET连接池

    数据库连接池 连接池是数据库连接的缓存,每当应用程序需要连接数据库时向连接池申请数据库连接,连接池负责具体数据库连接的创建和销毁.连接池中的数据库连接会缓存一段时间,后续的连接请求首先使用缓存中的数据 ...

  2. 性能优化之数据库和数据源连接池配置

    什么?!数据库连接拿不到? 今天在公司对系统进行压测,由于我的sit和dev和uat环境都是用的用的是一个数据库服务器,我让用户在的sit进行压测,分别是单线程测试,并发测试,但是用户一开始测,我的三 ...

  3. weblogic服务器连接池配置细节

    进入某个连接池配置页,进入"连接"页,点击高级选项的"show"显示高级选项. 指定 "测试频率" 并启用 "测试保留的连接&qu ...

  4. java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?

    求助,JAVA Spring 连接池 调用 Oracle 存储过程的问题?在Spring中配置了c3P0的连接池,在调用Oracle的存储过程时,报错[code]java.lang.ClassCast ...

  5. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...

    杂七杂的杂 作为程序员,开发工程中,一套利于测试或者监控的工具很重要,mybatis默认没有提供log4j的打印sql语句的配置. 这对于开发rest服务,提供接口的开发者而言,是在很不好做,再加上m ...

  6. Tomcat4.1、5.5、6.0的连接池配置及测试程序

    连接池配置需要在应用部署文件的<Context>节点内添加<Resource>描述. 对于Tomcat5和Tomcat6,官方建议不要将<Context>的配置直接 ...

  7. springboot数据库和连接池配置

    1 配置实例 ############################### DRUID数据源配置 start ################################ spring:data ...

  8. Redis 配置连接池,redisTemplate 操作多个db数据库,切换多个db,解决JedisConnectionFactory的设置连接方法过时问题。(转)

    Redis 配置连接池,redisTemplate 操作多个db数据库,切换多个db,解决JedisConnectionFactory的设置连接方法过时问题.(转) 参考文章: (1)Redis 配置 ...

  9. Hibernate连接池配置实例

    Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在Hibernate连接池配置时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支 ...

最新文章

  1. 【华为AI十强应用·上卷】官宣!这里的AI应用“神了”……
  2. 会议邀请 | 中国中文信息学会暑期学校《前沿技术讲习班》
  3. CT流程与CT图像的windowing操作(转载+整理)
  4. vsftpd安装、多用户配置
  5. java中子类实例化过程中的内存分配
  6. l2高斯分布_浅谈为什么L2正则化有效
  7. python多进程间通信
  8. jquery form表单序列化,并ajax实现提交后台
  9. 总结oninput、onchange与onpropertychange事件的使用方法和差别
  10. 美国白宫《国家人工智能研究发展战略计划》
  11. Android Bluetooth源码结构
  12. Ubuntu无网络连接/无网络标识解决方法
  13. 计算机win文件题型,《计算机应用基础》操作系统应用题型专项练习
  14. 什么是生化分析中的反应曲线?
  15. Android实现RecyclerView二级列表可折叠展开选中
  16. 微信小程序 | 一比一复刻世界杯点球大战
  17. 互联网日报 | 8月7日 星期六 | 华为上半年销售收入3204亿元;微博宣布下线“明星势力榜”;小米平板5系列8月10日发布...
  18. [vant] 使用vant的checkbox到页面,发现点击没有反应
  19. 这些YouTube频道教我如何编码
  20. ARM WFI和WFE

热门文章

  1. Go语言实现的素数筛选程序
  2. CCF NOI1118 序列第K小
  3. Python程序-打印斐波拉契数列
  4. 常见空指针异常及其避免
  5. 方言 —— 各地方言
  6. CPU vs. GPU
  7. 用 theano 求解 Logistic Regression (SGD 优化算法)
  8. 古文观止 —— 千古名篇
  9. 椭圆基本概念、定理及性质
  10. 机器学习基础(十五)—— blending