Oracle swap 100%案例分析

WBOY
WBOYオリジナル
2016-06-07 17:41:231512ブラウズ

操作系统版本: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报告中关于内存方面的信息!

 

 

 

 

 

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

 

问题处理:

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

[root@db1 ~]# swapoff -a

[root@db1 ~]# swapon -a

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

后续跟踪:

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

 

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。