欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle swap 100%案例分析

程序员文章站 2022-03-16 13:54:03
...

操作系统版本:centos5.864bit数据库版本:11.2.0.1问题描述:最近对数据库添加内存到32G,并调大了MEMORY_MAX_SIZE参数为28G,MEMORY_TARGET参数为24G;运行了

操作系统版本:centos5.8 64bit

数据库版本:11.2.0.1

问题描述:

最近对数据库添加内存到32G,并调大了MEMORY_MAX_SIZE参数为28G,MEMORY_TARGET参数为24G;运行了一小段时间,服务器空间,没有发现大的问题,只是nagios监控到主库和备库的swap使用率偏高,而在添加内存之前并未出现过这种情况,调整前操作系统内存大小为16G,调整后MEMORY_MAX_SIZE和MEMORY_TARGET参数均为11G!

调整前交换分区使用率:

调整后交换分区使用率:

问题分析:

先来说说下交换分区的作用,在操作系统范畴内,交换分区的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用,换句话说在内存未使用光之前,是不会用到交换分区的,真的是这样吗?下面来看下nagios的内存监控和oracle AWR报告中关于内存方面的信息!

Oracle swap 100%案例分析

Oracle swap 100%案例分析

Oracle swap 100%案例分析

Oracle swap 100%案例分析

通过查看nagios内存监控和AWR报告可以很明显的知道,香港服务器,实际内存使用率只到45%左右,可是为什么会用到交换分区呢?而且奇怪的是交换分区使用率到了100%后,oracle照样能正常运行,未收到任何的alert告警信息,如果真的出现内存不足,连接数据库的时候应该会出现类似下图所示的报错信息。

Oracle swap 100%案例分析

问题处理:

于是简单的处理了下这个问题,分别在主备库上敲下面的命令释放交换分区空间,但是问题依旧,过一段时间又会收到报警!

[root@db1 ~]# swapoff -a

[root@db1 ~]# swapon -a

于是参考下面的文章对内核参数进行调整,将swappiness参数从默认的60改为0,告诉操作系统,尽量不要使用交换分区!

后续跟踪:

修改后观察一段时间,服务器空间,交换分区使用率低且并无大幅度增长情况出现!

Oracle swap 100%案例分析

本文出自 “斩月” 博客,谢绝转载!

相关标签: memory swap orace