暂无图片
linux oracle11G占用内存过高,如果排查
我来答
分享
zjfgx
2024-03-08
linux oracle11G占用内存过高,如果排查

数据库服务器64G内存显示占用63G,需要如何排查分析?

SUSE Linux Enterprise Server 11 SP2
Oracle 11gR2
16core/64G/600G




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

free命令的buffers和 cached部分是历史上做过大文件操作导致的,这些内存不是可以手工释放么?

暂无图片 评论
暂无图片 有用 1
暂无图片
zjfgx
题主
2024-03-11
cached就占用了63G内存,明天早晨上班前我清理一下试试,现在也没有性能问题,谢谢
张sir
2024-03-12
卧槽,兄弟,你这要是生产环境,敢清理cache?搞清楚原理再给别人建议吧。别害人……
zjfgx

此服务器只用作数据库服务器,没有其他用途,oracle需要如何优化?

暂无图片 评论
暂无图片 有用 1
lianR

首先,你需要确定内存的使用情况。你可以使用以下命令来查看内存的使用情况:

-  `free  -m`:这个命令会显示内存的总量、已用量、空闲量等信息。
-  `top`:这个命令会显示系统的实时运行情况,包括CPU使用率、内存使用率、运行进程等信息。

如果你发现Oracle数据库占用了大部分的内存,那么可能需要对Oracle进行优化。以下是一些可能的优化方法:

1.  调整SGA(系统全局区)的大小:SGA是Oracle数据库中用于存储数据和控制信息的内存区域。你可以通过调整SGA的大小来减少内存的使用。但是,你需要注意,减少SGA的大小可能会影响数据库的性能。

2.  调整PGA(程序全局区)的大小:PGA是Oracle数据库中每个服务器进程的内存区域。你可以通过调整PGA的大小来减少内存的使用。但是,你需要注意,减少PGA的大小可能会影响数据库的性能。

3.  关闭不必要的Oracle服务:如果你的服务器上运行了一些不必要的Oracle服务,那么你可以考虑关闭它们来减少内存的使用。

4.  使用Oracle的自动内存管理功能:Oracle数据库提供了一个自动内存管理功能,它可以根据系统的负载自动调整SGA和PGA的大小。你可以考虑启用这个功能来减少内存的使用。

最后,如果你无法通过优化Oracle来解决内存占用过高的问题,那么你可能需要考虑升级你的服务器硬件,比如增加内存的大小。

暂无图片 评论
暂无图片 有用 3
广州_老虎刘

free 命令看到的free少, 不一定是问题. 用vmstat 看看si/so , 如果这两个值大, 那就说明真的不够了.  数据库是否需要优化, 一般用AWR来分析, awr里面也能反映出os是否需要调整.

暂无图片 评论
暂无图片 有用 3
情线

1、首先你先确认数据库占用内存多大,通过

ps auxw|head -1;ps auxw|sort -rn -k4|head -10

命令能看出系统占用内存最高的10个进程,确认一下数据库使用内存情况

2、对比一下历史内存使用情况,看一下数据库使用的内存变化,如果数据库占用内存猛增的话,那肯定问题在数据库层面了

3、确实是数据库内存问题后可以通过收集awr报告,取值区间1-2个小时,分析查看数据库各个实例组件缓存空间占用情况

4、一般这种数据库内存问题最有可能的就是sga出现问题的几率最大了

暂无图片 评论
暂无图片 有用 1
zjfgx

不清楚到底oracle为什么占用95%的内存,实际分配的没有那么多啊



暂无图片 评论
暂无图片 有用 0
情线
2024-03-11
有没有历史的服务器内存使用数据,做一下对比,看看之前数据库使用内存情况
张sir

兄弟,参考我这篇文章:https://www.modb.pro/db/515025

暂无图片 评论
暂无图片 有用 1
zjfgx


暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏