WEB开发网
开发学院数据库DB2 DB2 9.5 中多线程架构的工作原理 阅读

DB2 9.5 中多线程架构的工作原理

 2008-11-07 16:32:47 来源:WEB开发网   
核心提示: 在 db2 启动时,数据和 nofile 是无限制的,DB2 9.5 中多线程架构的工作原理(10), 栈限制不重要,因为 DB2 创建它自己的栈空间(AGENT_STACK_SZ dbm cfg)在 64 位 UNIX 上Default : 4 MBMinimum : 1 MBMaxim

在 db2 启动时,数据和 nofile 是无限制的。

栈限制不重要,因为 DB2 创建它自己的栈空间(AGENT_STACK_SZ dbm cfg)

在 64 位 UNIX 上

Default : 4 MB

Minimum : 1 MB

Maximum : 128 MB

在 32 位 LINUX 上

Default : 1MB

Minimum : 64 KB

Maximum : 4MB

MAXFILOP 是每数据库每分区的最大值。对于 32 位,新的默认最大值是 ~32K,对于 64 位,新的默认最大值是 ~64K。

当前 ulimit 设置(或者,在 AIX 上,如果 ulimit 被设为 unlimited,则为 8GB)。DB2 改写了一个 unlimited 的内核限制。为了得到一个大于 8GB 的内核,必须显式地将内核限制设为大于 8GB 的值,而不是设为 unlimited。

进程模型配置简化

在本节中,您将看到在 DB2 9.5 中配置参数有什么不同的行为。注意默认值和范围,因为它们与之前不同。

图 3. 配置参数

DB2 9.5 中多线程架构的工作原理

如果有性能关键型、非隔离的(unfenced)外部存储过程(SP)或用户定义函数(UDF),那么应确保它们是线程安全的。在迁移时,所有外部的、非隔离 SP 和 UDF 都将变为有隔离(fenced)。

按照惯例,为确保数据完整性,非隔离 SP 和 UDF 应该已经是线程安全的,但是,这不是强制性的。在一个多线程的进程中运行一个非线程安全的 SP 或 UDF 会导致不可预测的问题。因此,在迁移过程中,应创建一个脚本,以便实现对非隔离的转换。

在开始使用之前,先快速查看一下新引入的线程和进程:

db2thcln(线程栈清理):当一个 EDU 终止时回收资源(仅在 UNIX 上)。

db2aiothr(aio 收集器线程):管理数据库分区的异步 I/O 请求(仅在 UNIX 上)。

db2alarm(报警线程):当 EDU 请求的计时器到期时通知 EDU(仅在 UNIX 上)。

db2vend(隔离的供应商进程):代表一个 EDU 执行供应商代码,使实例执行用户退出程序,以便进行日志归档(仅在 UNIX 上)。

db2extev(外部事件处理程序线程):与 SIGUSR2 相同。

db2acd:一个健康监视器进程。

最后,如果升级到 DB2 9.5,会影响当前已有的应用程序吗?

答案是不会,完全不会。这个内部变化根本不会影响应用程序。实际上,从管理和应用程序编程的角度来看,它很大程度上是透明的。

致谢

特别感谢 Amar Thakkar 和 Samir Kapoor 对本文作出的技术审校。

上一页  5 6 7 8 9 10 

Tags:DB 线程 架构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接