mostxj 发表于 2010-11-30 17:08:46

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

      我这的生产系统有个现象,不知如何解决。请高手指点!
环境说明:
数据库:10.2.0.4 RAC
操作系统:aix 5.3
应用:每天定时的调度相同的工作流,业务量没有明显的增加

服务器上只装有数据库的应用,服务器的内存使用率随着时间的增加而缓慢增加,当在maitenance window中重启服务器,内存使用率会有大约20%左右的降低,然后再逐渐增长。这种现象不知从何查起,如果服务器重启的间隔时间过长的话,可能会将内存全部占光。这种情况如何解决?


kevin.zhang 发表于 2010-11-30 17:15:43

有可能是linux与unix正常的内存buffer机制。看下buffer的内存是多少。

kevin.zhang 发表于 2010-11-30 17:16:28

内存多大,sga与pga各占用了多少?

mostxj 发表于 2010-11-30 17:20:52

用vmstat看到信息如下
System Configuration: lcpu=14 mem=31744MB
oracle的内存参数如下:
sga_max_size                         big integer 9200M
sga_target                           big integer 9200M
pga_aggregate_target               big integer 3062M

mostxj 发表于 2010-11-30 17:22:02

主要是想查查,到底是什么进程导致的这种现象,我们其他的数据库服务器上没有类似的状况

mostxj 发表于 2010-11-30 17:23:18

buffer内存指的是什么?用什么命令可以查看?多谢指点

mostxj 发表于 2010-11-30 17:24:35

内存的使用率在重启机器后,下降了20%,总觉得不太靠谱!

oraunix 发表于 2010-11-30 18:14:44

oracle重启以后,内存使用率下降很正常。
因为重新启动以后,PGA不会在短时间上升。
而且SGA开始也不会占用那么多。

oraunix 发表于 2010-11-30 18:18:41

随着时间的推进,你的内存使用会逐渐增加,那么最常见的情况就是内存泄漏。
你需要关注一下pga的使用情况,具体的命令,论坛里面有。
对于单个进程的内存使用情况,你可以使用pmap命令来看,论坛里面有详细的说明。
你的内存的增长,主要是pga内存的增长。

oraunix 发表于 2010-11-30 18:21:04

内存的使用情况基本上是和进程的使用情况同步的,因此重点关注下面的几点:
1、用户session数的增加
2、pga的使用情况
3、使用topas+pmap,找出占用内存比较大的server process的情况
页: [1] 2
查看完整版本: 数据库服务器的内存使用率随着时间增加攀升,不明原因