数据库服务器64G内存显示占用63G,需要如何排查分析?
SUSE Linux Enterprise Server 11 SP2
Oracle 11gR2
16core/64G/600G



free命令的buffers和 cached部分是历史上做过大文件操作导致的,这些内存不是可以手工释放么?
评论
有用 1
此服务器只用作数据库服务器,没有其他用途,oracle需要如何优化?
评论
有用 1首先,你需要确定内存的使用情况。你可以使用以下命令来查看内存的使用情况:
- `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来解决内存占用过高的问题,那么你可能需要考虑升级你的服务器硬件,比如增加内存的大小。
评论
有用 3free 命令看到的free少, 不一定是问题. 用vmstat 看看si/so , 如果这两个值大, 那就说明真的不够了. 数据库是否需要优化, 一般用AWR来分析, awr里面也能反映出os是否需要调整.
评论
有用 31、首先你先确认数据库占用内存多大,通过
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
命令能看出系统占用内存最高的10个进程,确认一下数据库使用内存情况
2、对比一下历史内存使用情况,看一下数据库使用的内存变化,如果数据库占用内存猛增的话,那肯定问题在数据库层面了
3、确实是数据库内存问题后可以通过收集awr报告,取值区间1-2个小时,分析查看数据库各个实例组件缓存空间占用情况
4、一般这种数据库内存问题最有可能的就是sga出现问题的几率最大了
评论
有用 1不清楚到底oracle为什么占用95%的内存,实际分配的没有那么多啊


评论
有用 0
墨值悬赏


