美文网首页
ORACLE(SHAD)进程占用内存过大

ORACLE(SHAD)进程占用内存过大

作者: 答春竹 | 来源:发表于2018-07-27 16:16 被阅读0次

背景:发现oracle占用内存过大,根据自己的memory_target配置,最大占用内存设定为20G,sga_max_size和pga_aggregate_target设置也不大,而oracle占用的内存已经远远超过了20G。
环境:windows server 2008 R2,oracle 11.2.0.4。
现象:查询v$process视图发现有个进程ORACLE.EXE(SHAD),占用大量内存。

select PROGRAM,
       PID,
       SPID,
       SERIAL#,
       pga_used_mem / 1024 / 1024 / 1024 USED_MEM_G,
       PGA_MAX_MEM / 1024 / 1024 / 1024 MAX_MEM_G
  from v$process t
 order by pga_used_mem desc;
image.png
SHAD服务器进程有人称之为shadow process,但实际上,这个进程在体系结构中都很少提到。可能是在Oracle Dedicated Server模式下收到客户端请求后,Oracle将为客户端创建的一个新的服务器进程和会话。
image.png
在11gR2版本中,pga_aggregate_target只是一个建议值。在12c的版本已经有了pga_aggregate_limit,解决了pga过大的问题。限制pga的大小
该进程内存过大原因未知,过了一段时间,内存又降下去了。如有大佬告诉我可能的原因,感激不尽

顺藤摸瓜:查询官方文档,了解下在专用服务模式下的pga占用内存的估算算法
假设有5000个客户端在连接数据库,其中每个会话所需的内存为400 KB,每个服务器进程所需的内存为4 MB。那么pga的占用内存大概为

Dedicated Server
Memory used = 5000 X (400 KB + 4 MB) = 22 GB

在实际使用中,也可以查询视图可以设置合理的memory_target:

select value from v$pgastat where name='maximum PGA allocated';
--查询对应的pga最大大小
memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)

相关文章

  • ORACLE(SHAD)进程占用内存过大

    背景:发现oracle占用内存过大,根据自己的memory_target配置,最大占用内存设定为20G,sga_m...

  • linux pmap命令

    查看进程123占用内存情况 查看进程123占用内存情况--详细 查看进程123占用内存情况--更详细

  • Android创建多进程

    为何要使用多进程 1.分散内存的占用我们知道Android系统对每个应用进程的内存占用是有限制的,而且占用内存越大...

  • Android性能探索

    进程管理&内存管理 进程生命周期进程优先级:前台进程可见进程服务进程后台进程 (LRU Cache & 占用内存...

  • Linux查看内存,占用CPU资源

    linux 查询进程占用内存(MEM)最高的前10个进程 Linux 查询进程占用 cpu 最高的前10个进程 查...

  • 内存溢出排查命令

    可以先用top命令查询出占用内存最多的进程,然后使用下面指令分析占用内存较大的代码 查看进程的内存镜像信息 显示j...

  • Linux监控命令速记

    进程的线程数 进程内存占用看rss 进程的网络连接

  • 系统性能分析与诊断工具

    一、CPU占用最高的10个进程 二、内存占用最高的10个进程 三、虚拟内存使用最多的前10个进程 四、统计当前连接...

  • 查看CPU和内存使用率前十的PID

    linux 下 取进程占用内存(MEM)最高的前10个进程 linux 下 取进程占用 cpu 最高的前10个进程...

  • ceph的内存控制

    目的 控制ceph-osd进程内存占用的方法。 观测内存占用的工具 top gperftool ceph日志 to...

网友评论

      本文标题:ORACLE(SHAD)进程占用内存过大

      本文链接:https://www.haomeiwen.com/subject/ozvgxftx.html