数据库服务器的内存使用率随着时间增加攀升,不明原因
我这的生产系统有个现象,不知如何解决。请高手指点!环境说明:
数据库:10.2.0.4 RAC
操作系统:aix 5.3
应用:每天定时的调度相同的工作流,业务量没有明显的增加
服务器上只装有数据库的应用,服务器的内存使用率随着时间的增加而缓慢增加,当在maitenance window中重启服务器,内存使用率会有大约20%左右的降低,然后再逐渐增长。这种现象不知从何查起,如果服务器重启的间隔时间过长的话,可能会将内存全部占光。这种情况如何解决?
有可能是linux与unix正常的内存buffer机制。看下buffer的内存是多少。 内存多大,sga与pga各占用了多少? 用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 主要是想查查,到底是什么进程导致的这种现象,我们其他的数据库服务器上没有类似的状况 buffer内存指的是什么?用什么命令可以查看?多谢指点 内存的使用率在重启机器后,下降了20%,总觉得不太靠谱! oracle重启以后,内存使用率下降很正常。
因为重新启动以后,PGA不会在短时间上升。
而且SGA开始也不会占用那么多。
随着时间的推进,你的内存使用会逐渐增加,那么最常见的情况就是内存泄漏。
你需要关注一下pga的使用情况,具体的命令,论坛里面有。
对于单个进程的内存使用情况,你可以使用pmap命令来看,论坛里面有详细的说明。
你的内存的增长,主要是pga内存的增长。 内存的使用情况基本上是和进程的使用情况同步的,因此重点关注下面的几点:
1、用户session数的增加
2、pga的使用情况
3、使用topas+pmap,找出占用内存比较大的server process的情况
页:
[1]
2