今天Nagios监控发现一台Oracle数据库服务器swap严重,导致部分Nagios监控项超时报警
查看该服务器,swap空间设置为32G,已使用19G,使用率非常高,并且,vmstat显示si严重
此服务器物理内存32G,SGA设置20G,连接数不高,即使设置不当,也不应该出现如此严重的swap
cat /proc/meminfo
发现此服务器设置了HugePage,但状态均为Free
我们知道HugePage设置后,即使不使用它,所占的内存空间也不能被其他进程使用,并且,HugePage是pin在物理内存空间的,不会被swap,也就意味着32G物理内存,其实只有12G可用,难怪这么高的swap
那么,为什么会出现这个问题呢?之前为什么没有出现这个问题?
原因在于,此服务器在2个月前曾被重启,之前工程师在启动Oracle之前运行了ulimit -l unlimited,而2个月前重启的工程师不知道开启了HugePage,直接用标准模式重启了Oracle。由于操作系统limit配置的问题,导致无法使用HugePage
解决方法很简单
1.启动Oracle前,执行ulimit -l unlimited
2.修改/etc/security/limits.conf
增加:
oracle soft memlock -1
oracle hard memlock -1
[@more @]
时间: 2024-11-05 18:50:51