暂无图片
rhel 7.9 内存使用问题
我来答
分享
豆宇斯
2023-11-22
rhel 7.9 内存使用问题

rhel 7.9 oracle 19c rac 2节点内存使用异常

sga 40G pga 5G,available只有5.6G且swap也快用满了(图上是扩了swap后的),buff/cache 用了81G

查到的资料都说cache在物理内存不够的时候会释放,但是为什么还会占用2/3物理内存并且swap都快用完了还不释放

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
伟鹏

这是linux的一个内存机制,将内存中不常用的内存页面放到swap中去,当调用的时候再转到内存中使用。

这个可以通过swappiness设置,如果你没有设置过,redhat7默认是30,也就是当内存使用超过70%的时候就会使用swap,可以把这个值设置的小一点,越小越尽可能使用物理内存。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2023-11-23
more /proc/sys/vm/swappiness 1 已经是1了。。
伟鹏

这个东西你即使设置0,也就是尽最大可能使用物理内存,但是只要swap存在,还是会把不经常使用的内存页面放在里面的。这个避免不了的。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2023-11-23
对,所以现在是奇怪为什么cache有81G都不释放出来用
伟鹏

这个不用奇怪,这个是linux的机制,不是说他使用了不够才借用swap的空间,他主要会把他认为将来要用到的,现在不用的页面放到swap,这样就会导致swap增加了。 这个重启服务器或者手动释放,但是手动释放效果不佳。

关注一下,swap太高了,会影响数据库性能的。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2023-11-23
81G的cache也太恐怖了,数据库一共也没分配这么大,有什么办法看是因为什么占用的么
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏