Informix数据库维护指南
2.5 Checkpoint事件
2.5.1 checkpoint时间频度
管理项描述:数据库在检查点时,同步内存数据到磁盘 影响方式:检查点事件发生时,数据库性能较低
监控方式:定点检查数据库状态 1) onstat - 2) onstat -g ckpt
规避方式:频繁发生的检查点事件,会增加数据库被阻塞的风险,所以要尽量减少Block time, Wait time , Long time的发生。可以评估以下情况的可能性
1)逻辑日志量较交易发生量较小(监控间隔) 2)BUFFER量较交易发生量较小 3)备份异常 4)数据更改操作量大
5)自动checkpoint事件(v11)
检查Checkpoint事件的详细信息
onstat -g ckp
IBM Informix Dynamic Server Version 11.70.UC4 -- On-Line -- Up 00:48:24 -- 160552 Kbytes
AUTO_CKPTS=On RTO_SERVER_RESTART=Off
Critical Sections Physical Log Logical Log
Clock Total Flush Block # Ckpt Wait Long # Dirty Dskflu Total Avg Total Avg Interval Time Trigger LSN Time Time Time Waits Time Time Time Buffers /Sec Pages /Sec Pages /Sec 1296 13:42:00 Startup 25:0x2ab0b0 0.2 0.1 0.0 0 0.0 0.0 0.0 18 18 7 0 1 0 1297 13:47:00 CKPTINTVL 25:0x638018 0.3 0.3 0.0 0 0.0 0.0 0.0 633 633 532 1 909 3 1298 13:57:01 CKPTINTVL 25:0x63a018 0.0 0.0 0.0 0 0.0 0.0 0.0 1 1 17 0 2 0 1299 14:12:02 CKPTINTVL 25:0x63c018 0.0 0.0 0.0 0 0.0 0.0 0.0 1 1 2 0 2 0 1300 14:22:03 CKPTINTVL 25:0x69f018 0.1 0.1 0.0 0 0.0 0.0 0.0 158 158 139 0 99 0 1301 14:27:03 CKPTINTVL 25:0x6a1018 0.0 0.0 0.0 0 0.0 0.0 0.0 1 1 13 0 2 0
Max Plog Max Llog Max Dskflush Avg Dskflush Avg Dirty Blocked pages/sec pages/sec Time pages/sec pages/sec Time 200 200 0 135 0 0
北京数据中心
第21页 共 97页
Informix数据库维护指南
Checkpoint事件的触发类型 Event that triggered the checkpoint. An asterisk (*) indicates that the checkpoint requested was a transaction-blocking checkpoint. Events include Admin, Startup, CKPTINTVL, LongTX, Recovery, Backup, Plog, Llog, Misc, RTO, CDR, Pload, Conv/Rev, Reorg, HDR, User, and Lightscan 2.5.2 checkpoint耗时
Checkpoint耗时主要发生在两个阶段;
1) Checkpoint Req 即事件的申请阶段, 需要等待进入核心阶段的事务退出核心区,该阶段为阻塞阶段。
在这个阶段,事务操作的执行性能 和 同时并行的任务数量 将决定该阶段checkpoint事件的时间。
2) Checkpoint Inp 即事件的内部处理阶段,非阻塞阶段。
在这个阶段,checkpoint执行磁盘同步操作,因此磁盘I/O 速度,系统读写I/O并行压力将决定该阶段的checkppint事件的时间。
Online.log文件中,记录了checkpoint的历史信息。
oncheck -g ckp 命令中,记录了最近几次checkpoint的详细信息。
2.5.3 LRU、Cleaner设置
LRU 及 Cleaner 参数设置的不合理,会导致脏页全部在checkpoint期间集中写出,影响I/O的性能。可以通过监控 LRU write , FG write , Chunk write的比例,来合理设置 LRU 及 Cleaner的值。
LRU 写是在触发 LRU_MAX_DIRTY 值后,将 LRU队列清除到 LRU_MIN_DIRTY的设置。
CLEANER参数决定可以同时并行的LRU清除操作。
磁盘写入方式状态分析 onstat -F 北京数据中心 第22页 共 97页
Informix数据库维护指南
IBM Informix Dynamic Server Version 11.70.UC4 -- On-Line -- Up 01:46:46 -- 160552 Kbytes Fg Writes LRU Writes Chunk Writes 0 0 869
address flusher state data # LRU Chunk Wakeups Idle Tim 4af1f5fc 0 I 0 0 11 6398 6395.277 4af1fbe0 1 I 0 0 2 6389 6395.097 4af201c4 2 I 0 0 1 6388 6395.392 4af207a8 3 I 0 0 1 6388 6395.381 4af20d8c 4 I 0 0 1 6388 6395.323 4af21370 5 I 0 0 1 6388 6395.339 4af21954 6 I 0 0 1 6388 6395.327 4af21f38 7 I 0 0 1 6388 6395.327
LRU 设置 及 状态检查
onstat -R
IBM Informix Dynamic Server Version 11.70.UC4 -- On-Line -- Up 01:48:28 -- 160552 Kbytes
Buffer pool page size: 2048
8 buffer LRU queue pairs priority levels # f/m pair total % of length LOW HIGH 0 f 6250 100.0% 6250 6248 2 1 m 0.0% 0 0 0 2 f 6250 100.0% 6250 6248 2 3 m 0.0% 0 0 0 4 f 6250 100.0% 6250 6250 0 5 m 0.0% 0 0 0 6 f 6250 100.0% 6250 6249 1 7 m 0.0% 0 0 0 8 F 6250 100.0% 6250 6248 2 9 m 0.0% 0 0 0 10 f 6250 100.0% 6250 6249 1 11 m 0.0% 0 0 0 12 f 6250 100.0% 6250 6248 2 13 m 0.0% 0 0 0 14 f 6250 100.0% 6250 6247 3 15 m 0.0% 0 0 0
0 dirty, 50000 queued, 50000 total, 65536 hash buckets, 2048 buffer size
start clean at 60.000% (of pair total) dirty, or 3750 buffs dirty, stop at 50.000% CLEANER参数的设置 onstat -c|grep CLEAN
# CLEANERS - The number of page cleaner threads CLEANERS 8
北京数据中心
第23页 共 97页
Informix数据库维护指南
2.6 读写I/O
2.6.1 物理日志与逻辑日志的位置
逻辑日志与物理日志,在系统初始化的时候,都是存放在rootdbs中。由于其使用特性,逻辑日志和物理日志的写操作是实例中写访问最频繁的两种操作。
如果物理日志,与逻辑日志存放在同一个DBspace中,将造成比较严重的写冲突,且访问集中。
因此应尽量避免将两种日志存放于底层物理相关的两个磁盘、卷、卷组中。
逻辑及物理日志位置查看 oncheck -pe DBspace Usage Report: rootdbs Owner: informix Created: 03/13/2012 Chunk Pathname Pagesize(k) Size(p) Used(p) Free(p) 1 /home/informix/IDS1170/data/rootdbs_chk01 2 50000 48655 1345 Description Offset(p) Size(p) ------------------------------------------------------------- -------- ----------------------------------------------------------- RESERVED PAGES 0 12 CHUNK FREELIST PAGE 12 1 rootdbs:'informix'.TBLSpace 13 250 PHYSICAL LOG 263 15000 LOGICAL LOG: Log file 1 15263 5000 LOGICAL LOG: Log file 2 20263 5000 LOGICAL LOG: Log file 3 25263 5000 sysmaster:'informix'.sysdatabases 30263 4 system:'informix'.syslicenseinfo 30267 16 2.6.2 ROOTDBS数据要求
数据库根空间内,存放了所有系统数据库。由于系统库不能迁出根空间,因此要保证跟空间及根空间的第一个chunk有足够的空间,用于存放于系统表相关的记录。
如果根空间不足,会导致增加dbspace,chunk,extent等操作不成功。创建新的数据库,及其表等操作也要在系统库中增加记录。
由于用户库的数据增量通常会需要很大的空间,且波动的可能较大,因此应尽量避免将用户库与系统库同时放在根空间中。需要将用户库迁出根空间。
北京数据中心
第24页 共 97页
Informix数据库维护指南
使用onmonitor命令 菜单status→Databases Dynamic Server: Status Parameters Dbspaces Mode Force-Ckpt ... Status menu to view Dynamic Server. =================================================================== STATUS: Profile Userthreads Spaces Databases Logs Archive ... Display system profile information. =================================================================== -----------------------------On-Line------- Press CTRL-W for Help. -------- Press ESC to return to the Status Menu. Use arrow keys to move the cursor. DATABASES When Log Database Name Owner In Dbspace Created Status sysmaster informix rootdbs 03/13/2012 U sysuser informix rootdbs 03/13/2012 U sysadmin informix rootdbs 03/13/2012 U stores_demo informix datadbs01 03/21/2012 B Total # of databases -> 5 系统库名称列表 sysadmin, sysmaster, sysutils , sysuser, sysha 2.6.3 I/O操作分析
I/O集中访问请求过多,会造成磁盘访问繁忙,应尽量将磁盘访问分配到不同的设备上,减小I/O集中访问对系统造成的影响。
主要减小集中访问的方式有: 1) 2) 3)
同一张表的数据与索引分开存放
访问总量较大的DBspace中,将部分表或索引迁出 逻辑日志与物理日志分开存放
查看chunk I/O 信息 北京数据中心
第25页 共 97页