共享内存集 问题 on DB2

2011年7月2日,作者: 杰克·范瓦斯(Jack Vamvas)

共享内存集 DB2上的问题。在Linux上运行DB2 V9.5 Enterprise 32位8GB物理内存,我收到以下消息:

“无法从地址开始附加3个段,总计679084032字节
0x00000000。 可能的原因之一可能是:
shmmax 的Linux 内核可调。”


“无法分配所需的数据库共享内存集。
检查以确保已配置的DATABASE_MEMORY +溢出
不超过系统上的最大共享内存。
尝试仅使用系统缓冲池启动。
所需的数据库共享内存集大小为(字节):
非活动缓冲池应在下一个数据库可用
 启动,前提是所需的内存可用。”

原因是RedHat 的Linux 上内核参数shmmax的默认值通常是 低(32Mb,33554432字节)。

因此,需要分配一个320Mb共享内存段的DB2实例实际上将使用10 的Linux 片段为32Mb。此问题导致 DB2性能  问题是由于操作系统共享内存分配过多。

我通过在/etc/sysctl.conf中添加以下几行来解决此问题:

#增加SHMMAX来处理 -共享内存分配错误
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250    256000 32    1024
kernel.msgmax = 65536
kernel.msgmnb = 65536
#然后运行sysctl -p

作者:Jack Vamvas( http://www.dba-db2.com)
作者:Jack Vamvas( http://www.dba-db2.com)

分享:

验证您的评论

预览您的评论

这仅仅是一个预览。您的评论尚未发布。

 加工...
您的评论无法发布。错误类型:
您的评论已保存。评论经过审核,只有在获得作者批准后才会显示。 发表其他评论

您输入的字母和数字与图像不匹配。请再试一次。

作为发表评论的最后一步,请输入下图中显示的字母和数字。这样可以防止自动程序发布评论。

读取这张图片有困难吗? 查看备用。

 加工...

Post a comment on 共享内存集 问题 on DB2

评论是经过审核的,直到作者批准后才会显示。


ysaijiu.com | DB2性能调优 | DBA DB2 :一切 | 常问问题 | 联系 | 版权