logo资料库

informix健康巡检.pdf

第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
资料共39页,剩余部分请下载后查看
IBM Informix IDS 数据库健康检查建议书 IInnffoorrmmiixx DDyynnaammiicc SSeerrvveerr ((IIDDSS)) 数数据据库库健健康康检检查查 作者:谭永贻、孙国荣 IBM CSDL 中国软件开发中心 © Copyright IBM Corporation 2009. All rights reserved.
IBM Informix IDS 数据库健康检查建议书 使用条款 根据下列条款和条件授予使用这些出版物的许可权。 个人用途:您可以在全部所有权声明都得到保护的前提条件下复制这些出版 物以备个人的非商业使用。未经 IBM 明确同意,您不得分发、显示或制作这些 出版物或其任何部分的演绎作品。 商业用途:在全部所有权声明都得到保护的前提条件下,您仅可在企业内部 复制、发布和显示这些出版物。未经 IBM 明确同意,您不得制作这些出版物的 衍生品;不可在您的企业之外复制、发布或展示这些出版物或其部分内容。 除非本许可权中明确授予,否则不得授予对这些出版物或其中包含的任何信 息、数据、软件或其他知识产权的任何许可权、许可证或权利,无论明示的还是 暗含的。 只要 IBM 认为这些出版物的使用 会损害其利益或者 IBM 判定未正确遵 守上述指示信息,IBM 将有权撤销本文授予的许可权。 IBM 对这些出版物的内容不作任何保证。这些出版物是“按现状”提供的, 不附有任何种类的(无论是明示的还是暗含的)保证,包括但不限于暗含的有关 非侵权、适销和适用于某种特定用途的保证。
IBM Informix IDS 数据库健康检查建议书 数数据据库库健健康康检检查查....................................................................................- 1 - 前言.......................................................................................- 1 - 1、CPU.................................................................................- 1 - 1.1 CPU 利用率............................................................- 1 - 1.2 CPU VP ..................................................................- 1 - 2、Memory...........................................................................- 4 - 2.1 内存利用率.............................................................- 4 - 2.2 数据库内存使用情况 .............................................- 5 - 3、I/O....................................................................................- 5 - 3.1 rootdbs....................................................................- 5 - 3.2 系统 I/O..................................................................- 6 - 3.3 数据库写类型.........................................................- 7 - 4、Network...........................................................................- 7 - 4.1 网络连接数.............................................................- 8 - 4.2 网络连接失败情况.................................................- 8 - 4.3 NETTYPE 参数 ......................................................- 9 - 5、LOG.................................................................................- 9 - 5.1 Error 严重错误........................................................- 9 - 5.2 Warning ................................................................- 10 - 6、Administration ..............................................................- 10 - 6.1 磁盘空间 ..............................................................- 10 - 6.2 磁盘 chunk 状态 ..................................................- 11 - 6.3 临时表空间...........................................................- 12 - 6.4 逻辑日志 ..............................................................- 13 - 6.5 物理日志 ..............................................................- 14 - 6.6 备份与恢复...........................................................- 14 - 6.7 Update Statistics..................................................- 15 - 6.8 oncheck ................................................................- 16 - 7、Execution......................................................................- 17 - 7.1 Instance Profile ....................................................- 17 -
IBM Informix IDS 数据库健康检查建议书 7.2 Current Active SQL..............................................- 18 - 7.3 Checkpoint ...........................................................- 19 - 7.4 Long Transaction.................................................- 21 - 7.5 Lock ......................................................................- 22 - 7.6 Blocking Lock.......................................................- 23 - 7.7 Larger SQL...........................................................- 23 - 8、Performance.................................................................- 24 - 8.1 Large tables .........................................................- 24 - 8.2 Extents over tables..............................................- 24 - 8.3 Level over indexes...............................................- 25 - 8.4 Sequence scan tables.........................................- 26 - 8.5 DBSpace I/O ........................................................- 27 - 8.6 Most I/O tables.....................................................- 29 - 8.7 Read Ahead .........................................................- 29 - 8.8 Most Resource SQL............................................- 30 - 8.9 等待事件 ..............................................................- 31 - 8.10 Most CPU SQL ..................................................- 31 - 8.11 Most Buffread Tables.........................................- 32 - 8.12 Buffer Spin Contention......................................- 33 - 8.13 Sort on Disk........................................................- 33 - 总结.....................................................................................- 34 - 附录.....................................................................................- 29 -
IBM Informix IDS 数据库健康检查建议书 前言 为了关键业务系统稳定、高效的运行,IBM 公司为 Informix 数据库系统的用 户提供健康检查服务,目的是了解 Informix 数据库系统的运行和维护状态、发现 潜在的数据库性能问题,提出数据库系统调整的建议。 1、CPU 监控系统 CPU 利用率,观察 IDS 数据库 VP 的运行情况,根据系统实际业务 情况优化 INFORMIX 数据库的 VP 配置情况。诊断数据库系统运行情况,判断 是否需要增加新的 CPU。 1.1 CPU 利用率 检查点 方法 运行情况 CPU 利用率(idle) top,sar Solaris ps –aux A.top : Tasks: 209 total, 1 running, 207 sleeping, 0 stopped, 1 zombie Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 50.0%id, 49.2%wa, 0.0%hi, 0.2%si, 0.0%st B.sar 5 5: 10:37:06 AM CPU %user %nice %system %iowait %steal 10:37:11 AM all 0.70 0.00 0.40 49.20 0.00 10:37:16 AM all 0.50 0.00 0.30 49.45 0.00 10:37:21 AM all 0.50 0.00 0.50 49.30 0.00 10:37:26 AM all 0.50 0.00 0.40 49.35 0.00 %idle 49.70 49.75 49.70 49.75 健康状况评估 选择在多个典型时间点运行,以便综合考虑 CPU 利用率峰值、均值 情况。若 idle 均值<20,或者峰值时,idle 值<5 情况,则说明系统 CPU 资源不够。 1.2 CPU VP 检查点 方法 运行情况 CPU VP 运行情况 onstat -g glo onstat -g glo Virtual processor summary: class vps usercpu syscpu total cpu 2 307.90 5.92 313.82 aio 15 3.26 12.07 15.33 lio 1 0.27 2.32 2.59 pio 1 0.03 0.40 0.43 adm 1 0.00 0.00 0.00 msc 1 0.00 0.00 0.00 - 1 -
IBM Informix IDS 数据库健康检查建议书 total 21 311.46 20.71 332.17 Individual virtual processors: vp pid class usercpu syscpu total Thread Eff 1 12053 cpu 68.92 3.15 72.07 658.16 10% 2 12054 adm 0.00 0.00 0.00 0.00 0% 3 12055 cpu 238.98 2.77 241.75 1556.19 15% 4 12056 lio 0.27 2.32 2.59 463.98 0% 5 12057 pio 0.03 0.40 0.43 153.09 0% 6 12058 aio 1.56 5.94 7.50 4708.18 0% 7 12059 msc 0.00 0.00 0.00 0.28 0% 8 12060 aio 0.68 2.83 3.51 4058.91 0% 9 12061 aio 0.21 0.52 0.73 2288.94 0% 10 12062 aio 0.45 2.05 2.50 3142.38 0% 11 12063 aio 0.10 0.20 0.30 1446.43 0% 12 12064 aio 0.05 0.12 0.17 803.03 0% 13 12065 aio 0.04 0.08 0.12 751.08 0% 14 12066 aio 0.04 0.08 0.12 727.04 0% 15 12067 aio 0.04 0.05 0.09 680.67 0% 16 12068 aio 0.01 0.02 0.03 647.37 0% 17 12069 aio 0.01 0.05 0.06 620.92 0% A.onstat -g glo 输出数据库实例各 CPU VP 的运行情况,通过监控 输出 Virtual processor summary 可以得到各类 VP 总体上的情况,可以判 断每类 VP 数量是否充足,同时可以通过 Individual virtual processors:可以 监控到每一个 VP 的运行情况,我们重点要关注 Eff 列的输出,。 哪一个线程消耗最多的 CPU 资源 onstat -g cpu #IDS11 以上版本 onstat -g cpu Thread CPU Info: tid name vp Last Run CPU Time #scheds status 2 lio vp 0 4lio* 12/21 13:37:55 184.1230 65270 IO Idle 3 pio vp 0 5pio* 12/21 13:37:55 42.1679 965 IO Idle 4 aio vp 0 6aio* 12/21 13:37:55 1101.9186 312416 IO Idle 5 msc vp 0 7msc* 12/21 13:32:59 0.2780 2230 IO Idle 6 aio vp 1 8aio* 12/21 13:37:55 857.6105 197160 IO Idle 7 main_loop() 3cpu 12/21 13:38:35 1.9384 255207 sleeping secs: 1 8 soctcppoll 1cpu* 12/21 13:38:35 249827.1546 1959281 running 9 soctcplst 1cpu* 12/21 13:34:41 1.0137 3225 sleeping forever 10 flush_sub(0) 3cpu 12/21 13:38:35 0.7319 254376 sleeping secs: 1 11 flush_sub(1) 3cpu 12/21 13:38:35 0.6904 251005 sleeping secs: 1 12 kaio 1cpu* 12/19 10:14:51 3.3447 2901 IO Idle 13 aio vp 2 10aio* 12/21 13:37:55 535.2146 143777 IO Idle 14 aio vp 3 9aio* 12/21 13:37:55 442.6629 78389 IO Idle 15 aio vp 4 11aio* 12/21 13:37:55 338.8273 61951 IO Idle 健康状况评估 检查点 方法 运行情况 - 2 -
IBM Informix IDS 数据库健康检查建议书 16 aio vp 5 12aio* 12/21 13:37:55 204.7763 35286 IO Idle 17 aio vp 6 13aio* 12/21 13:37:55 196.9508 17477 IO Idle 18 aio vp 7 14aio* 12/21 13:37:55 194.3789 13132 IO Idle 19 aio vp 8 15aio* 12/21 13:37:55 192.6367 9237 IO Idle 20 aio vp 9 16aio* 12/21 13:37:55 192.3117 26551 IO Idle 21 aio vp 10 17aio* 12/21 13:37:55 193.1831 8252 IO Idle 22 aio vp 11 18aio* 12/21 13:37:55 190.9490 6313 IO Idle 23 aio vp 12 19aio* 12/21 13:37:55 191.9097 8688 IO Idle 24 aio vp 13 20aio* 12/21 13:37:55 191.6916 24814 IO Idle 25 aio vp 14 21aio* 12/21 13:37:55 192.2151 5315 IO Idle 26 aio vp 15 22aio* 12/20 15:01:31 193.3383 4321 IO Idle A.onstat -g cpu 输出各线程消耗 CPU 的情况,我们需要关注列: CPU time,确定对于运行状态及对应的 CPU VP 类型。 CPU VP 设置情况:等待队列与等待事件 onstat -g rea onstat -g wai onstat -g rea Ready threads: tid tcb rstcb prty status vp-class name 1086 99e7fd20 985c64f8 1 IO Wait cpu scan_2.0 onstat -g wai Waiting threads: tid tcb rstcb prty status vp-class name 1086 99e7fd20 985c64f8 1 IO Wait 1cpu scan_2.0 1087 9b0d5d20 985c6d48 1 IO Wait 1cpu scan_2.1 1088 9a7dbd20 985ce9f8 1 IO Wait 1cpu scan_2.2 IO Wait 1cpu scan_2.3 1089 9a2ded20 985cc8b8 1 A.onstat -g rea 监控就绪队列中的线程数目。包括准备运行而且在 等待资源的线程。理想的状态下是输出极少的条目或者不显示任何条 目。如果输出的某种 VP 类条目持续增长,那么就要考虑在该类中添 加 VP 。 B.onstat -g wai 监控线程的等待事件,我们需要重点监控 I/O 和 latch 的等待事件,如果许多线程持续等待 I/O 或者 latch 则揭示 I/O 或者 latch 是系统性能的一个瓶颈。 CPU VP 设置情况—I/O 队列 onstat -g ioq onstat -g ioq AIO I/O queues: q name/id len maxlen totalops dskread dskwrite dskcopy drda_dbg 0 0 0 0 0 0 0 sqli_dbg 0 0 0 0 0 0 0 kio 0 0 32 65918 2773 63145 0 kio 1 0 16 161342 2833 158509 0 健康状况评估 检查点 方法 运行情况 健康状况评估 检查点 方法 运行情况 - 3 -
IBM Informix IDS 数据库健康检查建议书 adt 0 0 0 0 0 0 0 msc 0 0 57 403347 0 0 0 aio 0 0 11 5943 4294 1358 0 pio 0 0 1 28767 0 28767 0 lio 0 0 1 268025 0 268025 0 gfd 3 0 71 424425 174562 249863 0 gfd 4 0 1 14 14 0 0 gfd 5 0 4 858099 858099 0 0 健康状况评估 在 onstat -g ioq 指令的输出中,关注 len 列。len 列的值应该总是 为 0 或接近于 0。如果该列的值很高并持续增长,那么我们可能需 要添加另一个 AIO/KAIO 虚拟处理器来减少磁盘 I/O 负载。 Maxlen 列表示自实例自上次启动以来的最大队列数情况。揭示在峰 值情况下的 I/O 情况。 相关参数调整建议: NUMCPUVPS : <= 系 统 CPU 的个 数 单 或 双 CPU 建 议 设 置 NUMCPUVPS 是 1 或者 2;对于有 4 个以上 CPU ,建议 设置 NUMCPUVPS 的值等于处理器总数减 1。 IDS9.2 以后的版本中将 NUMCPUVPS ,NUMAIOVP 用 VPCLASS 参数代替。online 的状态下,可以使用 onmode -p 来增加或者减少 虚拟处理器。 SINGLE_CPU_VP:多 CPU 情况下设置为 0 MULTIPROCESSOR:多 CPU 情况下设置为 1 VPCLASS cpu,num=3 VPCLASS 配置参数允许您指定虚拟处理器类、数据库应该为特定类 启动的虚拟处理器数以及所允许的最大数。 VPCLASS 参数的 cpu 和 num 选项指定数据库服务器最初启动的 AIO VP 数。如果您的操作系统不支持内核异步 I/O (KAIO),则数 据库服务器使用 AIO VP 管理所有数据库 I/O 请求。 AIO VP 的推荐数量取决于您的配置支持的磁盘数。如果在您的平台 上没有实现 KAIO ,则建议您为包含数据库表的每个磁盘分配一个 AIO VP 。可以为数据库服务器频繁访问的每个块添加附加的 AIO VP。 在裸设备情况是否使用了 KAIO。 2、Memory 查看系统总内存,观察 IDS 数据库实例分配的内存情况,确保有足够的内存 空间可供数据库使用,调整内存分配参数以获取更高性能。 2.1 内存利用率 检查点 系统内存空间、空闲内存空间 - 4 -
分享到:
收藏