暂无图片
分享
sunflower
2022-09-26
RHEL6.9 操作系统占用过多内存的情况

RHEL6.9+ORACLE 11G

系统重启时候,发现OS 占用了快70G的内存,通过top发现,并为发现有大的进程占用内存,

top如下:


以为是图形化界面占用的内存,但是通过top发现,并不是。

同时也检查了sysctl配置文件 

sysctl -p的结果

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.nr_hugepages = 33285    ----DB 配置了65G SGA

limits.confl 配置如下


oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock unlimited
oracle soft memlock unlimited


有没有老铁遇到这种问题呢? 


收藏
分享
6条回答
默认
最新
哇哈哈

vm.nr_hugepages = 33285    ----DB 配置了65G SGA

hugepages在系统启动就会分配出去的内存,算在used里面,

top 显示的69282820k used减掉hugepages的65G,操作系统没用多少啊

grep -i huge /proc/meminfo 可以看hugepages分配情况

暂无图片 评论
暂无图片 有用 0
打赏 0
sunflower
题主
2022-09-26
top截图为DB 未启动的情况,SGA 65G PGA 12G
哇哈哈
答主
2022-09-26
只要你的vm.nr_hugepages = 33285参数生效,就分配内存了,和db起不起没关系
张sir

楼上说的对,这个大页只能被db用(如果你的db开启了使用大页)。系统的used包含这个大页的分配。

暂无图片 评论
暂无图片 有用 0
打赏 0
张sir

DB不启动,只要操作系统启动,这个内存就相当于被分配出去了,从used里看,这个内存已经被分配了。

暂无图片 评论
暂无图片 有用 0
打赏 0
sunflower


暂无图片 评论
暂无图片 有用 0
打赏 0
哇哈哈
2022-09-26
Total就是已经从内存分配出去的hugepages,算在used里面
哇哈哈
2022-09-26
可以参考一下https://baijiahao.baidu.com/s?id=1678967245006453430&wfr=spider&for=pc
刘贵宾

通常情况下,宿主机中HugePage的大小是2048KB,即2MB,cat /proc/meminfo | grep Hugepagesize Hugepagesize: 2048 kB你现在设置了vm.nr_hugepages = 33285,那么所占内存大小就是33258x2=66516M

top中Mem used约为67659M

67659-66516=1143M这才是操作系统进程所占用的内存,大部分的内存都被分配给大页占用了

暂无图片 评论
暂无图片 有用 0
打赏 0
sunflower
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
哇哈哈
2022-09-26
问题有帮助的话,请采纳
回答交流
Markdown


请输入正文
提交