Oracle Swap居高不下处理
来源:互联网 发布:百度云软件打不开 编辑:程序博客网 时间:2024/05/16 19:42
环境描述:
SYSTEM: rhe5.3 x86_64bit
ORACLE:ORACLE 11.1.7.0
内存:8G
现像:
现场运维发邮件回来前端应用缓慢,不时会抛出异常!
分析:
通过查看服务器进程使用情况发现一些进程使用内存相当高,通过vmstat 查询,系统层面已经大量使用Swap交换分区了。说明内存使用不足,系统层面反应也是比较缓慢
vmstat情况:
但查看Oracle进程查询没发现有消耗性能的SQL,
调整:
1:服务器内存:
2:调整/dev/shm
3:调整内核参数
4:调整数据库参数
5:监控DB情况
先为两台服务器增加16G内存,轮流重启服务器,完成内存增加后,修改SGA,hugepage size hugepage_setting.sh查询出vm.nr_hugepages = 6146
节点正常,但节点2不正常,和未增加内存前一样,Swap交换分区被大量使用。
解决:
通过分析及查询资料发现hugepage 没被使用
进一步分析 :还是与hugepage设置及系统参数有关:
HugePages配置
进程需要访问内存的数据时,它的虚拟内存地址段先连接到page tables(Page Table是用来存放虚拟内存也和物理内存页对应关系的内存结构),然后再连接到物理内存。所以在访问内存时需要先访问page tables得到虚拟内存和物理内存的映射关系,然后再访问物理内存。page size越小,相应的内存结构也会越大,在RHEL 系统中,缺省为4k为一个单位,则物理内存越大,page tables相对越大。无形增加进程扫描内存的成本。
当物理内存大于8G时,建议使用hugepages配置,Hugepages的常见page size为2M,是4k size的500倍,所以可以大大减小page table的尺寸,提交扫描内存的效率。
同时CPU cache中有一部分TLB(Translation Lookaside Buffer)用来存放部分page table以提高这种装换的速度。因为page size变大了,所以同样大小的TLB,所覆盖的内存大小也变大了。提高了TBL命中率,也就是提高了地址转换的速度。
HugePages配置方法:
1、在 /etc/security/limits.conf 增加memlock配置
* hard memlock unlimited
* soft memlock unlimited
2、利用官方的提供的脚本hugepages_settings.sh[ID 401749.1],计算需要配置的内存参数
$ ./hugepages_settings.sh
......
Press Enter to proceed...
Recommended setting: vm.nr_hugepages = 6146
3、修改/etc/sysctl.conf 的项vm.nr_hugepages=6146
sysctl -p;
sysctl -a|grep -i huge
4、关闭实例及群集,重启系统。
5、对hugepages配置进行检查:
$ grep -i huge /proc/meminfo
HugePages_Total: 6146
HugePages_Free: 15
Hugepagesize: 2048 kB
6、启动实例及数据库群集。
参考:
HugePages on Oracle Linux 64-bit [ID 361468.1]
Shell Script to Calculate Values Recommended Linux HugePages / HugeTLB Configuration [ID 401749.1]
进程需要访问内存的数据时,它的虚拟内存地址段先连接到page tables(Page Table是用来存放虚拟内存也和物理内存页对应关系的内存结构),然后再连接到物理内存。所以在访问内存时需要先访问page tables得到虚拟内存和物理内存的映射关系,然后再访问物理内存。page size越小,相应的内存结构也会越大,在RHEL 系统中,缺省为4k为一个单位,则物理内存越大,page tables相对越大。无形增加进程扫描内存的成本。
当物理内存大于8G时,建议使用hugepages配置,Hugepages的常见page size为2M,是4k size的500倍,所以可以大大减小page table的尺寸,提交扫描内存的效率。
同时CPU cache中有一部分TLB(Translation Lookaside Buffer)用来存放部分page table以提高这种装换的速度。因为page size变大了,所以同样大小的TLB,所覆盖的内存大小也变大了。提高了TBL命中率,也就是提高了地址转换的速度。
HugePages配置方法:
1、在 /etc/security/limits.conf 增加memlock配置
* hard memlock unlimited
* soft memlock unlimited
2、利用官方的提供的脚本hugepages_settings.sh[ID 401749.1],计算需要配置的内存参数
$ ./hugepages_settings.sh
......
Press Enter to proceed...
Recommended setting: vm.nr_hugepages = 6146
3、修改/etc/sysctl.conf 的项vm.nr_hugepages=6146
sysctl -p;
sysctl -a|grep -i huge
4、关闭实例及群集,重启系统。
5、对hugepages配置进行检查:
$ grep -i huge /proc/meminfo
HugePages_Total: 6146
HugePages_Free: 15
Hugepagesize: 2048 kB
6、启动实例及数据库群集。
参考:
HugePages on Oracle Linux 64-bit [ID 361468.1]
Shell Script to Calculate Values Recommended Linux HugePages / HugeTLB Configuration [ID 401749.1]
问题解决
0 0
- Oracle Swap居高不下处理
- oracle数据库cpu占用居高不下的解决办法
- oracle数据库操作系统CPU利用率居高不下
- oracle 10g undo表空间使用率居高不下bug
- oracle 10g undo表空间使用率居高不下bug
- oracle 10g undo表空间使用率居高不下bug
- oracle学习笔记 swap
- 安装oracle时报swap不够
- oracle交换分区swap不足
- 处理swap分区使用过多的操作
- SWAP空间不足的处理方法
- 中国房价为何居高不下?
- CPU居高不下原因之一
- linux cpu居高不下 调试
- Oracle诊断案例-SGA与Swap之一
- 安装Oracle改变swap交换空间大小
- Oracle诊断案例-SGA与Swap之一
- 【Linux】Swap分析Oracle 服务器内存
- unity工程接入Android sdk后真机测试解锁屏后退出的解决
- eclipse 运行中出现问题汇总
- 信息检索及信息过滤方法概述
- Linux系统的启动过程
- iOS7的程序加了多个UIWindow,调用MPMoviePlayerViewController播放视频时,除了key window其他window的坐标会被改变,怎么办
- Oracle Swap居高不下处理
- 论文笔记
- (三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target
- web移动端开发(2)-viewport
- iOS 生成静态文件(以及一些错误)
- 我们工作到底为了什么--强烈推荐
- 关于Physics2D
- (四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filter
- JAVA中isEmpty和null以及""的区别