数据库服务器的内存使用率随着时间增加攀升,不明原因

P3 | 发表于 2010-12-4 22:32:28
谢谢老师的分析。我的系统每天基本上是运行固定次数的工作流,session数量没有明显的增加。我再研究研究动态监控的办法。
另外想请教老师个问题,理论上讲,sga_target和pga_aggregate_target之和是不是应该是oracle可以使用的最大内存数?如果是这样的话,我的这个oracle sever理论上不应该超过40%内存使用率,主机本身如果不运行其他应用,整个服务器的内存使用率理论上将不应该超过60%.
另外,内存泄露是否是oracle所导致,是否为系统的bug?
回复

使用道具

P3 | 发表于 2010-12-4 22:47:55
我用以下命令
ps -ef|grep ora|wc -l
查出我的系统里有大概300个和oracle有关的进程,如何甄别是哪个进程发生了内存泄露呢?
我理解的内存泄露的概念是,某个进程在运行的过程中使用了1m内存,在进程结束后,只还给了操作系统0.8m的内存,这样0.2m的内存就被无端占用,其他进程也无法再使用这0.2m的内存了,这样就造成了内存泄露。
pga_aggregate_target 的值是限定了oracle session 总的pga使用量,理论上将不应该超过这个上限的。
回复

使用道具

P3 | 发表于 2010-12-6 14:13:15
昨天发的问题,不知啥原因丢了
回复

使用道具

P3 | 发表于 2010-12-6 14:33:22
我的这个系统是运行定时的工作流,每天的session数量基本上是固定的。session数量没有明显增加。
另外,我用ps -ef |grep ora|wc -l 可以看到300个左右的进程,不知道用什么方法可以定位出哪个进程发生了内存泄露。
还有个疑问,pga_aggregate_target 是 3062M,理论上讲,PGA的使用总量不应该超过这个值。SGA target和pga_aggregate_target之和,是不是理论上应该是oracle server应该使用的内存上限?我的服务器上只有oracle运行。这样理论上,我oracle的内存使用率应该在
40%左右,加上server的内存的使用,应该不超过60%.对这点,还是很疑惑。
回复

使用道具

P6 | 发表于 2010-12-9 11:09:16
如果你感觉系统命令不是很熟悉,你可以看一下v$pgastat、v$systat来看一下uga等使用情况。
回复

使用道具

P4 | 发表于 2012-9-15 13:42:27
顶顶顶顶顶顶顶顶顶顶
回复

使用道具

12
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈