- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简介 理解?DB2?如何使用内存,可以防止过度分配内存,并有助于对内存的使用进行调优,从而获得更好的性能。 DB2 V9 引入了自动自调整内存管理 ,自适应的自调整内存功能通过自动设置内存配置参数值以及调整缓冲池大小来简化内存配置任务。启用此功能后,内存调整器就会在几个内存使用者(包括:排序、程序包高速缓存、锁定列表和缓冲池)之间动态地分配可用内存资源,从而简化了内存配置参数调整的工作量。 在DB2 V9之前,数据库 的内存配置参数和缓冲池都是由管理员手工设置的。而数据库的工作负载很少是静态的,而是动态变化的。比如,当工作负载类型发生变化(由事务型变成了混合型等)、用户增加、维护任务的运行或者其它应用程序消耗的资源变化等,都会造成工作负载在不停的变化。因此,即便是资深的数据库管理员调优过的系统,在另一个时候也未必是最优的。数据库管理员需要根据变化随时做出调整,工作量大而效果也不明显。变化可能在很短的时间内发生,因此留给数据库管理员作出响应的时间很短。数据库内存设置尤其容易受这些变化的影响,因而会严重影响响应时间。? DB2?内存结构 DB2在4种不同的内存集(memory?set)内拆分和管理内存。这4种内存集分别是: 实例共享内存(instance?shared?memory)? 数据库共享内存(database?shared?memory)? 应用程序组共享内存(application?group?shared?memory)?(略) 代理私有内存(agent?private?memory) 实例共享内存 每个DB2实例都有一个实例共享内存。 实例共享内存是在数据库管理器启动(db2start)时分配的,并随着数据库管理器的停止(db2stop)而释放。 这种内存集用于实例级的任务,例如监控、审计和节点间通信。 获取配置命令: db2 get dbm cfg instance_memory?默认值是AUTOMATIC。 可以使用下面的命令来确定它的值:? db2?attach?to?instance_name(其中?instance_name是实例的名称)? db2?get?dbm?cfg?show?detail 上面的输出表明有13.6GB的内存被预留给实例共享内存集(3433509页*4096字节/页):? instance_memory?参数只是设置了实例共享内存的限制,它并没有说出当前使用了多少内存。要查明一个实例的内存使用情况,可以使用DB2内存跟踪器工具db2mtrk。 例如,??db2mtrk?-i?-v 上面的例子表明,实例内存只用到了大约14MB。那么还有很大一部分内存哪去了?答案是instance_memory包含了database_memory总和的限制。 数据库共享内存 每个数据库有一个数据库共享内存集。数据库共享内存是在数据库被激活或者第一次被连接上的时候分配的,在数据库处于非激活状态时释放(如果数据库先前是处于激活状态)或者最后一个连接被断开的时候释放。这种内存用于数据库级的任务,例如备份/恢复、锁定和SQL的执行。 完整的绿色方框意味着,在数据库启动的时候,该内存池是完全分配的,否则,就只分配部分的内存。 获取配置命令: db2 get db cfg for TSO 主缓冲池(Main Bufferpools) 数据库缓冲池通常是数据库共享内存中最大的一块内存。DB2?在其中操纵所有常规数据和索引数据。一个数据库必须至少有一个缓冲池,并且可以有多个缓冲池,这要视工作负载的特征、数据库中使用的数据库页面大小等因素而定。例如,页面大小为?8KB?的表空间只能使用页面大小为?8KB?的缓冲池。 查看主缓冲池的大小有多少,可以发出:? SELECT?*?FROM?SYSCAT.BUFFERPOOLS; NPAGE列代表页数量,PAGESIZE为页大小。NPAGE=-2,代表缓冲池大小是自动调整的,非固定。 注:NPAGE=-1 ,表示缓冲池大小由db cfg的buffer_page大小控制,默认是1000页。 如何创建自动调整内存大小的缓冲池: create bufferpool BP4K immediate size 100000 automatic pagesize 4K 隐藏的缓冲池? ??当数据库启动时,要分配4个页宽分别为4K、8K、16K和32K的小型缓冲池。这些缓冲池是“隐藏”的,因为在系统编目中看不到它们(通过?SELECT?*?FROM?SYSCAT.BUFFERPOOLS?显示不出)。 util_heap_sz 指示可由BACKUP、RESTORE、LOAD实用程序同时使用的内存量。 pckcachesz 用于高速缓存数据库上的静态和动态SQL以及Xquery语句的部分。 db
文档评论(0)