Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

53

积分

0

好友

0

主题
1#
发表于 2011-10-18 10:04:58 | 查看: 12584| 回复: 19
最近发现我的系统的内存狂降,下面是我的抓图

[ 本帖最后由 yaonc 于 2011-10-18 10:06 编辑 ]

pga.png (29.5 KB, 下载次数: 481)

pga sga

pga sga

topas.png (28.42 KB, 下载次数: 474)

topas

topas

svmon.png (16.8 KB, 下载次数: 472)

svmon

svmon

vmstat查询结果.png (22.59 KB, 下载次数: 481)

vmstat查询结果

vmstat查询结果

查找占用内存前20条.png (33.67 KB, 下载次数: 457)

查找占用内存前20条

查找占用内存前20条

检查使用资源前十位的process.png (22.02 KB, 下载次数: 469)

检查使用资源前十位的process

检查使用资源前十位的process

2#
发表于 2011-10-18 10:21:16
sga 5G + server process memory + os memory + file system cache(约3G)
total 16G
还剩1G多的内存,还算可以。
没有预分配SGA的情况下,在数据库启动的近一段时间内,空闲内存下降是正常的,就看能不能稳定。

server process memory + os memory 大概共7G。

坐等ml大师分析

回复 只看该作者 道具 举报

3#
发表于 2011-10-18 10:39:14
su - root
svmon -U oracle|head -40  
ps vg|grep ora|awk ‘{sum=sum+$7-$10} END {print sum/1024}’
vmo -a

su - oracle
ulimit -a

11g 是否启用了AMM特性? 

show parameter memory
show parameter pga

回复 只看该作者 道具 举报

4#
发表于 2011-10-18 10:39:58
用svmon看,free内存还剩200多m

回复 只看该作者 道具 举报

5#
发表于 2011-10-18 10:47:50

回复 4# 的帖子

free内存 下降是从何时开始的? 是否期间有重启过,或者改其他参数? 原来的free有多少?

你最关心的是什么?

1. Free 内存为何下降?
2. 还是Oracle是否用了更多的内存?

最好运行下 上面我提供的脚本

回复 只看该作者 道具 举报

6#
发表于 2011-10-18 10:48:53
也可以参考下这个post:

理解Oracle在AIX平台上的内存使用
http://www.oracledatabase12g.com ... n-aix-platform.html

回复 只看该作者 道具 举报

7#
发表于 2011-10-18 11:02:54
结果在附件中
其中pga为2G,sga为5g,上周五发现free内存已经很少,周五晚上重启,没改任何参数!周六周日没有业务,周一就发现free内存只有200多m

[ 本帖最后由 yaonc 于 2011-10-18 11:04 编辑 ]

ulimit -a.png (6.35 KB, 下载次数: 477)

ulimit -a

ulimit -a

vmo -a.png (23.49 KB, 下载次数: 486)

vmo -a

vmo -a

svmon-oracle.png (37.81 KB, 下载次数: 449)

svmon-oracle.png

回复 只看该作者 道具 举报

8#
发表于 2011-10-18 11:05:54
原帖由 maclean 于 2011-10-18 10:47 发表
free内存 下降是从何时开始的? 是否期间有重启过,或者改其他参数? 原来的free有多少?

你最关心的是什么?

1. Free 内存为何下降?
2. 还是Oracle是否用了更多的内存?

最好运行下 上面我提供的脚本 ...

对的,我就是关心的这两个问题,到底是谁在吃内存,free内存下降了,会不会给系统带来隐患

回复 只看该作者 道具 举报

9#
发表于 2011-10-18 11:30:39

回复 8# 的帖子

首先不要截图, 对于这种问题 截图毫无帮助

其次

su - root
svmon -U oracle|head -40  

svmon -U
ps vg|grep ora|awk ‘{sum=sum+$7-$10} END {print sum/1024}’
vmo -a

su - oracle
ulimit -a

完整地运行一次 不要遗漏

回复 只看该作者 道具 举报

10#
发表于 2011-10-18 12:05:05
通过ps vg|grep ora|awk ‘{sum=sum+$7-$10} END {print sum/1024}’
看到oracle共用了9G内存,我估计还是应用中间件的jdbc连接开得比较多引起的

回复 只看该作者 道具 举报

11#
发表于 2011-10-18 12:50:26
ps vg|grep ora|awk ‘{sum=sum+$7-$10} END {print sum/1024}’

估算的是服务器上所有Oracle process所用私有段(RSS-TRS), 可能并不准确

SGA 5g +  private segment 9g 就有14g了
而实际从你的topas  来看实际 comp 计算内存仅占 16384 * 0.78 = 12779.52 MB

建议你对比AWR 视图dba_hist_process_mem_summary  dba_hist_pgastat  , 找出是否在 周一之前 和周一之后PGA的使用量有明显的区别

另外你可以尝试调大 vmo 的 minfree内存参数, 以保有一定数量的free memory

也可以参考下这个文档: http://www.oracledatabase12g.com ... nce-and-tuning.html

回复 只看该作者 道具 举报

12#
发表于 2011-10-18 15:10:53
通过ps vg|grep ora|awk ‘{sum=sum+$7-$10} END {print sum/1024}’
看到oracle共用了3G内存,SGA 5g +  private segment 3g 就8g了

回复 只看该作者 道具 举报

13#
发表于 2011-10-18 15:22:23

回复 12# 的帖子

大致的计算方法 就是这样 , 你刚不是说出来的结果是9g吗

回复 只看该作者 道具 举报

14#
发表于 2011-10-18 15:30:27
我看错了,计算有误!

回复 只看该作者 道具 举报

15#
发表于 2011-10-18 21:14:13
可能你说的free memory只有200M,也是算错了。:lol

回复 只看该作者 道具 举报

16#
发表于 2011-10-19 13:42:42
今天早上svmon,发现free memory 有1.4g了,估计系统释放了部分内存

回复 只看该作者 道具 举报

17#
发表于 2011-10-27 17:41:29
你们应用是几层架构, 在发生内存狂降的期间 ,有没有做过很大的文件系统的操作,比如ftp大文件 ,copy大文件之类的 。

回复 只看该作者 道具 举报

18#
发表于 2011-11-1 21:51:48
基本上确定是session的问题,每天早上svmon,free内存有1g多

回复 只看该作者 道具 举报

19#
发表于 2011-11-1 22:16:35
如果中间层无法利用连接池,可以考虑共享服务器,以减少process

回复 只看该作者 道具 举报

20#
发表于 2011-11-2 15:40:51
某些平台上,是根据sga_max_size来占用共享内存的
如果sga_max_size > sga_target ,差值部分在v$sgainfo中被称为:Free SGA Memory Available
虽然用不上也被占了

aix平台如此,其它环境可能不同

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 02:13 , Processed in 0.059847 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569