暂无图片
银河麒麟V10 SP2服务器系统,ORACLE 11G swap使用率过高的问题
我来答
分享
我是IT男
2024-11-11
银河麒麟V10 SP2服务器系统,ORACLE 11G swap使用率过高的问题

操作系统:银河麒麟V10 SP2

内存配置:16G

SWAP内存:16G

sga和pga的配置如下图所示

现在SWAP的使用率太高了,内存明明是还有6G可用的。目前数据库还没上生产,基本是空置状态

请问各位这个如何排查


我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
吴明

是不是hugepage配置问题?

暂无图片 评论
暂无图片 有用 0
黄山谷

只是swap被占用,os有它的释放规则。
当系统的物理内存压力增大时,Linux 会根据内存的使用情况和交换空间的使用情况,决定是否要将数据移到 swap 区域。
内核会优先交换掉 不活跃的内存页,例如那些长时间没有被访问的数据页。Linux 使用一个叫做 “页面老化”(page aging)的机制来判断哪些内存页不常用。
当物理内存被填满,或者 Linux 内核判断需要释放内存时,它会将内存中不常用的页面移到 swap 空间(称为 swapout)。当内存空闲并且需要更多的内存时,内核会从 swap 中恢复数据到物理内存(称为 swapon)。

内存页回收的触发条件:

系统内存紧张时。
swap 空间可用时,内核会将较少使用的内存页移到 swap,以释放物理内存。
如果内存压力减少(例如有新的内存空闲出来),内核会尝试把部分从 swap 中移回物理内存。

swappiness 是一个内核参数,控制系统开始使用 swap 的频率。它的值在 0 到 100 之间,默认值通常为 60。

低值(如 0-20) 表示尽量避免使用 swap,只有在物理内存非常紧张时才使用 swap。

高值(如 80-100) 表示系统会更积极地使用 swap,甚至在物理内存还有剩余时也可能交换数据到 swap 中。

如何查看 swappiness 值:

cat /proc/sys/vm/swappiness

如何修改 swappiness 值: 临时修改(会在重启后失效):

sysctl vm.swappiness=30

永久修改(编辑 /etc/sysctl.conf 文件):

echo "vm.swappiness=30" >> /etc/sysctl.conf
sysctl -p
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏