软件开发

DB2 私有内存相关问题

最近服务器内存较高,已达到90%以上,此时并无session连接,svmon查看数据库进程所占用内存较高,db2pd -dbptnmem通过查看如下所示:

Name             Mem Used (KB) HWM Used (KB) Cached (KB)
========================================================
APPL-CHGMTST2           160000        160000      140736
APPL-CHGMTST1           160000        160000      148928
DBMS-db2chgmu          1696000       1696000     1472192
FMP_RESOURCES            22528         22528           0     
PRIVATE                4439168      22017408     4237760
DB-CHGMTST1            5811776       6106240     1064128
DB-CHGMTST2            5612160       5612160      934208
LCL-p189366                128           128           0
LCL-p197268                128           128           0
LCL-p242066                128           128           0
LCL-p242066                128           128           0
LCL-p147680                128           128           0


dbm中SHEAPTHRES参数为零,数据库级别主要是bufferpool占用较多内存,其中PRIVATE和实例级别个占用  4439168K、1696000。
(数据库版本v9.5.10)。


请问: PRIVATE中包括哪些私有内存?如何通过命令查看PRIVATE中各个私有部分所占用的内存大小?在不重启实例情况下如何降低 PRIVATE大小?LCL-p189366是什么东东?(最好能详细阐述或者给个链接)
参与14

13同行回答

zhendazhenda数据库管理员昆仑银行
回复 12# mdkii    9.7以下版本没有什么好办法监控哪些线程占用私有内存,9.7开始可通过表函数监控。感谢回答。显示全部
回复 12# mdkii


   9.7以下版本没有什么好办法监控哪些线程占用私有内存,9.7开始可通过表函数监控。感谢回答。收起
软件开发 · 2013-11-22
浏览550
zhendazhenda数据库管理员昆仑银行
之前询问如何通过命令查看PRIVATE中各个私有部分所占用的内存大小,在9.7版本以后可以对私有内存进行监控,通过表函数去发现哪些线程在使用使用内存,9.5版本没有什么好办法。db2 "select MEMORY_SET_TYPE,MEMORY_POOL_TYPE,APPLICATION_HANDLE,EDU_ID,MEMORY_POOL_USED,MEMOR...显示全部
之前询问如何通过命令查看PRIVATE中各个私有部分所占用的内存大小,在9.7版本以后可以对私有内存进行监控,通过表函数去发现哪些线程在使用使用内存,9.5版本没有什么好办法。

db2 "select MEMORY_SET_TYPE,MEMORY_POOL_TYPE,APPLICATION_HANDLE,EDU_ID,MEMORY_POOL_USED,MEMORY_POOL_USED_HWM from table(MON_GET_MEMORY_POOL(NULL, CURRENT_SERVER, -2))"收起
软件开发 · 2013-11-22
浏览562
zhendazhenda数据库管理员昆仑银行
回复 7# 砚凝0920    您说的这个是V8/9.1中私有内存部分,在9.5版本以后app不再单独存有私有内存,而是统一放到私有内存段中。徐明伟书中300页是您说的部分。显示全部
回复 7# 砚凝0920


   您说的这个是V8/9.1中私有内存部分,在9.5版本以后app不再单独存有私有内存,而是统一放到私有内存段中。徐明伟书中300页是您说的部分。收起
软件开发 · 2013-05-18
浏览573
zhendazhenda数据库管理员昆仑银行
回复 5# mdkii svmon -O unit=KB,segment=category -P  这个是看进程占用内存,对进程内部内存分配情况没有帮助。其他命令里没有发现对private 有很好的解释。篇幅有限没法一一列出,请帮忙说的具体些。原有环境当时没有发现更好的解决办法,已通过重启实例释放掉PR...显示全部
回复 5# mdkii
svmon -O unit=KB,segment=category -P  这个是看进程占用内存,对进程内部内存分配情况没有帮助。
其他命令里没有发现对private 有很好的解释。篇幅有限没法一一列出,请帮忙说的具体些。原有环境当时没有发现更好的解决办法,已通过重启实例释放掉PRIVATE 内存。
若有方法,帮忙本地实验和其他mempool、memset列出的值和private 的值相对应上。收起
软件开发 · 2013-05-17
浏览582
zhendazhenda数据库管理员昆仑银行
回复 7# 砚凝0920    你说的是代理池,应该属于APPL-CHGMTST2和APPL-CHGMTST1 这两个吧,和私有内存不太一样吧。 PRIVATE 大小近5G,相差还是比较远。显示全部
回复 7# 砚凝0920


   你说的是代理池,应该属于APPL-CHGMTST2和APPL-CHGMTST1 这两个吧,和私有内存不太一样吧。 PRIVATE 大小近5G,相差还是比较远。收起
软件开发 · 2013-05-17
浏览576
zhendazhenda数据库管理员昆仑银行
回复 6# 砚凝0920    设置为automatic(100)。显示全部
回复 6# 砚凝0920


   设置为automatic(100)。收起
软件开发 · 2013-05-17
浏览579
砚凝0920砚凝0920数据库管理员上海宝信软件股份有限公司
你没有连接,但是私有内存却占用那么大。感觉明显没有回收内存。IBM网上关于num_poolagents有这么一段话:私有内存是在一个 DB2 代理被“指派”执行任务时分配给该代理的。那么,私有内存何时释放呢?答案取决于 dbm cfg 参数 num_poolagents的值。该参数的值指定任何时候可以保...显示全部
你没有连接,但是私有内存却占用那么大。感觉明显没有回收内存。
IBM网上关于num_poolagents有这么一段话:私有内存是在一个 DB2 代理被“指派”执行任务时分配给该代理的。那么,私有内存何时释放呢?答案取决于 dbm cfg 参数 num_poolagents的值。该参数的值指定任何时候可以保留的闲置代理的最大数目。如果该值为 0,那么就不允许有限制代理。只要一个代理完成了它的工作,这个代理就要被销毁,它的内存也要返回给操作系统。如果该参数被设为一个非零值,那么一个代理在完成其工作后不会被销毁。相反,它将被返回到闲置代理池,直到闲置代理的数目到达 num_poolagents指定的最大值。当传入一个新的请求时,就要调用这些闲置代理来服务该新请求。这样就减少了创建和销毁代理的开销。
当代理变成闲置代理时,它仍然保留了其代理的私有内存。这样设计是为了提高性能,因为当代理被再次调用时,它便有准备好的私有内存。如果有很多的闲置代理,并且所有这些闲置代理都保留了它们的私有内存,那么就可能导致系统耗尽内存。为了避免这种情况,DB2 使用一个注册表变量来限制每个闲置代理可以保留的内存量。这个变量就是 DB2MEMMAXFREE。它的默认值是 8 388 608 字节。这意味着每个闲置代理可以保留最多 8MB 的私有内存。如果有 100 个闲置代理,那么这些代理将保留 800MB 的内存,因此它们很快就会耗尽 RAM。您可能希望降低或增加这一限制,这取决于 RAM 的大小。
建议把num_poolagents设置的大小满足平时最小连接数就行。这样就会把资源回收。收起
互联网服务 · 2013-05-17
浏览633
砚凝0920砚凝0920数据库管理员上海宝信软件股份有限公司
你num_poolagents参数设置了多少?显示全部
你num_poolagents参数设置了多少?收起
互联网服务 · 2013-05-17
浏览608
mdkiimdkii软件开发工程师bocn
你可以把以下信息发出来看看:svmon -O unit=KB,segment=category -P db2pd -d -memsetsdb2pd -d -mempoolsdb2pd -memsetsdb2pd -mempoolsdb2mtrk -d -i -p -v显示全部
你可以把以下信息发出来看看:
svmon -O unit=KB,segment=category -P
db2pd -d -memsetsdb2pd -d -mempools
db2pd -memsets
db2pd -mempools
db2mtrk -d -i -p -v收起
银行 · 2013-05-17
浏览600
zhendazhenda数据库管理员昆仑银行
回复 3# iwaich    谢谢,兄弟。我也急切期盼大侠们能到此一游,留下笔墨。显示全部
回复 3# iwaich


   谢谢,兄弟。我也急切期盼大侠们能到此一游,留下笔墨。收起
软件开发 · 2013-05-16
浏览578

提问者

zhenda
数据库管理员昆仑银行
擅长领域: 数据库服务器云计算

问题状态

  • 发布时间:2013-05-14
  • 关注会员:1 人
  • 问题浏览:4108
  • 最近回答:2013-11-22
  • X社区推广