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