WEB开发网
开发学院数据库DB2 OLTP应用程序的DB2调优技巧 阅读

OLTP应用程序的DB2调优技巧

 2009-12-12 14:59:20 来源:WEB开发网   
核心提示:建议要运行 OLTP 应用程序,请确保将 MAXAPPLS 的值设置正确(足够大但不能是没必要的大)以容纳最多的并发用户/连接,OLTP应用程序的DB2调优技巧(7),对于那些使用连接池的应用程序,我们建议将 MAXAPPLS 的值设置成比连接池的大小大 1 或 2(这样做只是为了以防需要调用命令行连接来同时做一些事情

建议

要运行 OLTP 应用程序,请确保将 MAXAPPLS 的值设置正确(足够大但不能是没必要的大)以容纳最多的并发用户/连接。对于那些使用连接池的应用程序,我们建议将 MAXAPPLS 的值设置成比连接池的大小大 1 或 2(这样做只是为了以防需要调用命令行连接来同时做一些事情)。

如何更改该参数

要更改 MAXAPPLS 的值,请运行下面的命令: db2 -v update db cfg for DB_NAME using MAXAPPLS a_number
db2 -v terminate

研究步骤

当应用程序尝试连接数据库,但是连接到数据库的应用程序数已经达到了 MAXAPPLS 的值时,会向应用程序返回下面这个错误,表明连接到该数据库的应用程序数已达到了最大值。

SQL1040N The maximum number of applications is already connected to the
database. SQLSTATE=57030

异步页清除程序的数目(NUM_IOCLEANERS)

背景知识

NUM_IOCLEANERS 是一个数据库配置参数,它可以让您指定数据库的异步页清除程序的数目。在数据库代理程序需要缓冲池中的空间之前,这些页清除程序将缓冲池中已更改的页写到磁盘。这允许代理程序不必等待已更改页被写到磁盘就可以读取新页。因此,这会加快应用程序事务的运行。

如果将该参数设置成 0,则不启动页清除程序,结果,数据库代理程序将缓冲池中的所有页写到磁盘。该参数会对存储在多个物理存储设备上的单个数据库的性能产生显著影响,这是因为在这种情况下其中某个设备极有可能处于空闲状态。如果没有配置页清除程序,则应用程序可能会遇到不时发生的“日志已满”情况。

如果连接到数据库的应用程序主要执行更新数据的事务,那么增加清除程序的数目会提高性能。增加页清除程序的数量还会减少“软”故障(比如断电)的恢复时间,因为磁盘上数据库的内容在任何给定时候都是比较新的。

当设置该参数的值时要考虑下面这些因素:

如果有多个事务针对数据库运行,则将该参数的值设置在 1 到该数据库所使用的物理存储器的数量之间。有一个建议:至少将该参数的值设置成您系统上 CPU 的数量。

在具有高更新事务率的环境下,可能需要配置较多的页清除程序。

在具有大缓冲池的环境下,也可能需要配置较多的页清除程序。

如何更改该参数

可以用下面的命令来为该参数设置一个新值: db2 -v update db cfg for DB_NAME using NUM_IOCLEANERS a_number
db2 -v terminate

研究步骤

使用数据库系统监视器,利用有关从缓冲池进行写操作的快照数据(或事件监视器)信息来帮助您调优该配置参数。

当使用快照和收集缓冲池的快照数据时,监控下列计数器:

Buffer pool data writes = 0
Asynchronous pool data page writes = 0
Buffer pool index writes = 0
Asynchronous pool index page writes = 0
LSN Gap cleaner triggers   = 0
Dirty page steal cleaner triggers = 0
Dirty page threshold cleaner triggers = 0

如何决定该减少还是该增加 NUM_IOCLEANERS?

如果下面这两个条件成立,则 减少NUM_IOCLEANERS:

“Buffer pool data writes”约等于“Asynchronous pool data page writes”。

“Buffer pool index writes”约等于“Asynchronous pool index page writes”。

只要下面这两个条件有一个成立,则 增加NUM_IOCLEANERS:

“Buffer pool data writes”远远大于“Asynchronous pool data page writes”。

“Buffer pool index writes”远远大于“Asynchronous pool index page writes”。

Dirty page steal cleaner triggers 指出调用页清除程序的次数,因为在数据库“受损”缓冲区替换期间需要同步写操作。为了有更好的响应时间,该数值应当尽可能低。利用上面所示的计数器,可以使用下面的公式计算用该元素表示的所有清除程序调用的百分比: Dirty page steal cleaner triggers / (Dirty page steal cleaner triggers +
Dirty page threshold cleaner triggers +
LSN Gap cleaner triggers)

如果该比率很高,则它可能表明您所定义的页清除程序太少了。页清除程序太少会使故障恢复时间变长。

I/O 服务器的数目(NUM_IOSERVERS)

上一页  2 3 4 5 6 7 8  下一页

Tags:OLTP 应用程序 DB

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