X
首页 数据库相关工具 用 IDS OpenAdmin Tool 管理 Informix 数据库,第 3 部分: 通过 OpenAdmin Tool 轻松地分析 Informix Dynamic Server 的性能
用 IDS OpenAdmin Tool 管理 Informix 数据库,第 3 部分: 通过 OpenAdmin Tool 轻松地分析 Informix Dynamic Server 的性能

学习如何使用 IDS OpenAdmin Tool (OAT) 分析 IBM® Informix® Dynamic Server (IDS) 的性能。OAT 是在 IDS 11.10 和更高版本上支持的基于 Web 的开放源码界面。本 系列 的 第 1 部分 和 第 2 部分 介绍了此工具以及如何从 Informix Server Administrator 迁移到 OAT。现在,看看如何通过统计数据和图表监视性能,快速了解信息的含义。

简介

本 系列 的 第 1 部分 和 第 2 部分 介绍了 IDS OpenAdmin Tool (OAT),这是一个基于 Web 界面的 Informix Dynamic Server 管理工具,并讲解了如何从 Informix Server Administrator 迁移到 OAT。OAT 具有许多优点:

一个 OAT 系统可以管理多个数据服务器
不需要在数据服务器上额外安装软件,OAT 就可以在任何 Web 浏览器中运行
因为 OAT 是开放源码的,很容易编辑和修改此工具来满足自己的需要
在详细讨论如何使用 OAT 执行性能分析之前,我们先看看决定数据库服务器性能的参数。在线事务处理 (OLTP) 系统的性能由以下指标描述:

吞吐量
响应时间
每事务成本
资源利用率
OAT 的 Performance Analysis 工具集有助于度量这些参数,这些工具包括:

SQL Explorer
Performance History
System Reports
Session Explorer
本文将讨论这些功能。


SQL Explorer

SQL Explorer 页面显示在当前数据库服务器上执行的所有 SQL 语句类型的汇总信息。通过使用此页面上的信息,可以了解某类语句的运行次数、平均响应时间和内存使用量、最大响应时间和处理的行数。

单击某一语句类型即可看到关于此语句类型的详细信息,比如某一语句在服务器上运行的次数。例如,单击 SELECT 查看 SQL 跟踪捕捉到的关于 SELECT 语句的信息。然后,可以钻取关于各个 SELECT 查询的详细信息。还可以通过一个饼图看到运行次数最多的语句(见 图 1),这个饼图按照每个语句类型的运行次数百分比划分。把鼠标指针移动到饼图的每个部分上,就会看到这种语句类型的百分比。


图 1. SQL 语句汇总信息
SQL 语句汇总信息

选择 Data 可以看到表格格式的相同信息:


图 2. 数据视图
数据视图

在开始使用此组件提供的各种特性之前,需要启用 SQLTRACING 选项。如果在没有启用 SQL 跟踪的情况下打开 SQL Explorer,它会显示以下消息:


图 3. 禁用了 SQL 跟踪
禁用了 SQL 跟踪

OAT 提供一个激活 SQLTRACING 的选项,如下所示:


图 4. 激活 SQLTRACING
激活 SQLTRACING

把 Mode 设置为 On。还可以设置 “Number of traces”,这是在重用资源之前要跟踪的 SQL 语句的数量。此参数的范围是 500 到 2147483647。“Trace Size” 是指存储的长度可变的数据的最大值。此参数的范围是 1KB 到 100KB。如果超过这个缓冲区大小,数据库服务器会丢弃保存的数据。

跟踪级别可以是以下级别之一:

  • Low:此跟踪级别是默认级别,它捕捉语句统计数据、语句文本和语句迭代器。
  • Medium:此跟踪级别捕捉低级跟踪涉及的所有信息,再加上表名、数据库名和存储过程堆栈。
  • High:此跟踪级别捕捉中级跟踪涉及的所有信息,再加上主机变量。

另外,可以通过把 Mode 设置为 Off 禁用 SQL 跟踪。

注意:在默认情况下,SQL 跟踪是禁用的。

SQL Explorer 页面与服务器端的 onstat -g his 输出相似。在默认情况下,只有 DBSA 可以查看 onstat -g his syssqltrace 信息。但是,如果设置 UNSECURE_ONSTAT = 1,那么所有用户都可以查看此信息。下面的步骤说明如何使用查询钻取特性。这里钻取的 SQL 语句是 CREATE TABLE 语句。

  1. 启用 SQLTRACE 特性。
  2. 通过使用 dbaccess 或 OAT SQL Editor 组件执行 CREATE TABLE 命令。
  3. 选择 Performance Analysis 选项卡下面的 SQL Explorer 组件。
  4. 单击 SQL 语句汇总信息中列出的 CREATE TABLE SQL 语句:

    图 5. SQL 语句汇总信息
    SQL 语句汇总信息

  5. 产生的页面显示一个 SQL 语句的性能信息,比如此语句在服务器上执行的次数 (Count) 和平均运行时间。

    要想查看每次执行此 SQL 语句的详细信息,单击 Drill Down

    图 6. SQL 频率汇总信息
    SQL 频率汇总信息

  6. 产生的页面提供所选 SQL 语句的详细信息。以下显示了该 SQL 语句及其统计数据:
    • Session ID:运行此 SQL 语句的用户的数据库会话 ID
    • User ID:运行此 SQL 语句的用户的 ID
    • Response Time:处理此 SQL 语句所需的时间长度
    • Rows/Second:每秒处理的平均行数
    • Rows Processed:此 SQL 语句处理的行数
    • Lock Wait Time:在执行此 SQL 语句期间系统等待锁的时间
    • Wait IO Time:等待 IO 操作的时间


    单击 Drill Down 查看 SQL 语句的详细统计数据:

    图 7. 钻取屏幕
    钻取屏幕

  7. 产生的页面显示 SQL 语句的详细执行情况。使用此页面上的信息分析每个 SQL 语句的性能。

    图 8. 语句统计数据
    语句统计数据

    语句统计数据输出以下信息:

    • Page Reads:从磁盘读取的页面数量
    • Buffer Reads:从缓冲区池(而不是磁盘)读取的页面数量
    • Read Cache:应该从缓冲区池读取的页面百分比
    • Index Buffer Read:索引页面的缓冲区读数量
    • Page Write:写到磁盘的页面数量
    • Buffer Write:修改并发送回缓冲区池的页面数量
    • Writes Cache:页面写到缓冲区池(而不是磁盘)的次数百分比
    • Lock Requests:此语句需要的锁总数
    • Lock Waits:此 SQL 语句等待锁的次数
    • Lock Wait Time:在执行此 SQL 语句期间等待锁花费的时间(以秒为单位)
    • Disk Sorts:此 SQL 语句在磁盘上执行排序的数量
    • Memory Sorts:此 SQL 语句在内存中执行排序的数量
    • Total Executions:执行此语句或重用游标的总次数
    • Total Time:执行此语句的总时间(以秒为单位)
    • Average Time:执行此语句的平均时间(以秒为单位)
    • Max Time:执行此 SQL 语句的总时间(以秒为单位),但是不包含应用程序花费的时间
    • IO Wait Time:此语句等待 IO 的时间
    • Average IO Wait:此语句等待 IO 的平均时间,不包括任何异步 I/O
    • Average Rows/Second:此语句每秒处理的平均行数
    • Estimated Cost:与 SQL 语句相关联的成本
    • Estimated Rows:优化器估计此语句返回的行数
    • Actual Rows:此语句实际返回的行数
    • SQL Error:SQL 错误号
    • ISAM Error:RSAM/ISAM 错误号
    • Isolation Level:此语句采用的隔离级别
    • SQL Memory:此 SQL 语句所需的字节数

Performance History

可以通过 OAT 提供的 Performance History 监视性能的关键方面。可以监视 IDS Scheduler DBCron 捕捉到的历史数据。OAT 提供五类性能数据,见图 9。


图 9. 性能数据类别
性能数据类别

单击一个类别即可查看 IDS 在此方面的性能。要想查看当前数据库服务器的性能数据,应该展开列表并选择性能数据类型。这时会生成一个显示所需信息的图。可以放大或收缩数据范围,图会相应地调整。

现在,详细讨论每类性能数据。

Auto Checkpoints

Auto Checkpoints 允许服务器更频繁地触发检查点,以避免事务阻塞。此菜单提供许多检查点参数,见图 10 中的下拉框。


图 10. Auto Checkpoints
Auto Checkpoints

要想查看最大磁盘刷新时间历史,应该单击 acp_longest_dskF图 11 显示一个输出示例。该图显示了一小段时间内的值。Profiled Fields 菜单中的 Legend 选项有助于解释这个图。为了更方便,还提供了放大和缩小选项:Red Mark

例如,在 图 11 中,在 03-June-2008, 2:01 AM 最大磁盘刷新时间是 “5”。进一步放大就可以看到特定时刻的值。


图 11. 显示最大磁盘刷新时间的图
显示最大磁盘刷新时间的图

要想查看文本格式的相同数据,单击左下角的 Data 按钮。


图 12. 数据视图
数据视图

Disk

此组件提供数据库服务器在磁盘操作方面的性能历史详细信息。在单击 “Disk” 下拉菜单时,它显示以下子菜单,见图 13:


图 13. Disk 菜单
Disk 菜单

  • Disk Reads:磁盘读操作的总数
  • Disk Writes:磁盘写操作的总数
  • Disk Flushes:从缓冲区写到磁盘的总数
  • Chunk Writes:区块写的总数(区块写以排序的写操作形式执行,是最高效的数据库服务器写操作)
  • Foreground Writes:给定时刻的前台写数量

通过选择子菜单展开菜单,可以选择不同页面大小的磁盘操作,见图 14。


图 14. 磁盘页面
磁盘页面

Buffer

此组件提供分析数据库服务器性能所需的共享内存缓冲区信息。子菜单与 “Disk” 组件相似。

General Profile

此组件提供检查点、死锁、回滚、提交、更新和删除等方面的性能历史数据,见图 15。


图 15. General Profile 组件
General Profile 组件

B-Tree Scanner

从有索引的表中删除行时,B-Tree Scanner 有助于改进启用了日志的数据库的事务处理。B-Tree Scanner 线程会去掉删除的索引项并重新平衡索引节点。B-Tree Scanner 自动判断哪些索引项应该删除。清除超出阈值的所有索引之后,将阈值范围内的索引添加到热列表(hot list)中。默认的阈值是 500。展开 B-Tree Scanner 组件会显示 bts_rangesize、bts_thread、bts_flags 等列表项。



System Reports

这个 OAT 组件对数据库管理员非常有意义。OAT 提供 DBA 所需的大量信息,比如磁盘空间使用情况、日志文件、消耗 IO 时间最多的 SQL 语句、最慢的 SQL 语句等等。DBA 可以使用这些报告分析和调整 IDS 的性能。因此,“System Reports” 组件就像一把尺子,可以通过各种参数度量当前的服务器性能。“System Reports” 页面显示各种报告,可以单独查看它们,也可以用许多小报告构建一个大报告:


图 16. System Reports
System Reports

单击报告名就会显示报告,其中显示当前信息。例如,单击 Server Configuration(图 16 中红圈中的报告)就可以看到服务器的当前配置。在这里,可以看到 OAT 对某些配置参数的建议,也可以把配置参数设置为所需的值。但是,只有一部分配置参数是动态的,可以从 OAT 设置。

生成报告的另一种方法是使用复选框,见图 16。要想用多个小报告构建一个大报告,应该选择所需报告的复选框并单击 Create Report。这些报告会合并在一起,显示当前信息。如果按照这种方法查看报告,会打开另一个浏览器窗口,报告显示在这个新窗口中。报告会显示创建报告的时间、“Server uptime” 和实际数据。此报告首先列出组成它的所有小报告。可以通过选择每个小报告直接查看它,然后通过单击 Top 链接返回到顶部,见图 17。


图 17. 日志报告
日志报告

图 18. 逻辑日志
逻辑日志

要过滤报告列表,可以单击 Report Type 选择需要过滤的列表。选择您需要的报告类型。选择这些报告的复选框。单击 Create Report 查看报告。



Session Explorer

此页面显示当前在服务器上运行的用户会话。单击 SID (Session ID) 列中的值显示会话的详细信息。在服务器端可以使用 onstat -g ses 命令获得会话的详细信息。还可以通过单击闪电按钮结束会话:闪电按钮

注意:无法杀死系统启动的会话。


图 19. 会话主页面
会话主页面

输出包括:

  • SID:会话 ID
  • Username:此会话中连接的用户名
  • PID:进程 ID
  • Hostname:运行服务器实例的机器的名称
  • Memtotal:此会话中使用的总内存
  • IOWaittime:等待 IO 花费的时间
  • CPUTime:此会话使用的 CPU 时间量

单击 SID 号可以显示所选用户会话的信息。Session Info 部分显示此会话的报告,见图 20。


图 20. 详细会话页面
详细会话页面

输出包括:

  • Connected:启动会话的时间
  • Open Tables:此会话中打开的表数
  • Current Statement:此会话中当前执行的 SQL 查询

SQL 选项卡http://cniug.org/informix-tools/166--ids-openadmin-tool-informix-3-openadmin-tool-informix-dynamic-server-.html