7. Locks
缺省的LOCKTIMEOUT=-1,就是说不设置lock的timeout,在OLTP中这可能是一个灾难。我们要设置比较小的数值,比如设置LOCKTIMEOUT=10或者15秒。
查看命令:
db2 "get db cfg for DBNAME",
继续查看下面的信息:
Lock timeout (sec) (LOCKTIMEOUT) = -1
要和应用人员将明白,他们是否已经在程序中可以处理timeout的情况。然后设置:
db2 "update db cfg for DBNAME using LOCKTIMEOUT 15"
可以在系统中察看lock wait的数目,lock wait time, lock list 使用的内存量。
db2 "get snapshot for database on DBNAME"
查看:
Locks held currently= 0
Lock waits= 0
Time database waited on locks (ms)= 0
Lock list memory in use (Bytes)= 576
Deadlocks detected= 0
Lock escalations= 0
Exclusive lock escalations= 0
Agents currently waiting on locks= 0
Lock Timeouts= 0
假如lock list的内存量(bytes)超过LOCKLIST 的50%,那么需要增加LOCKLIST的量,LOCKLIST是按4k计算。
8. Maximum Open Files
最大的打开文件数目
DB2限制同时打开的文件数目,数据库参数"MAXFILOP"限定了并发打开的文件数目。如达到这个数目,DB2就会开始关闭和打开Tablespace文件,包括raw device,这样会降低SQL反映时间和占用CPU。
使用命令来查看是否有文件关闭情况:
db2 "get snapshot for database on DBNAME"
看看其中的 "Database files closed = 0"
如果值不是零,就需要修改MAXFILOP,
db2 "update db cfg for DBNAME using MAXFILOP N"
9. Agents
需要保证有足够的agent应付系统负载。
命令:db2 "get snapshot for database manager"
此时需要观察“Agents waiting for a token” 或者“ Agents stolen from another application”,假如有值,就需要增加DB manager的agent值,也就是修改MAXAGENTS 和/或者 MAX_COORDAGENTS的值。
High water mark for agents registered = 7
High water mark for agents waiting for a token = 0
Agents registered= 7
Agents waiting for a token= 0
Idle agents= 5
Agents assigned from pool= 158
Agents created from empty Pool = 7
Agents stolen from another application= 0
High water mark for coordinating agents= 7
Max agents overflow= 0
10. Monitor Switches
打开Monitor Switch后才可以获得性能方面的信息,详细命令如下:
db2 "update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON"
文章来源于领测软件测试网 https://www.ltesting.net/