DB2 9.5 中多线程架构的工作原理
2008-11-07 16:32:47 来源:WEB开发网在 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. 配置参数
如果有性能关键型、非隔离的(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 对本文作出的技术审校。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接