LoadRunner 是一款强大的负载测试工具,常用于测试应用系统的性能和稳定性。在监控 MySQL 数据库性能时,由于 LoadRunner 本身不直接支持 MySQL 的监控,我们需要通过第三方工具 SiteScope 来实现。以下是对监控 MySQL 数据库性能的详细步骤和相关知识点的解释:
1. **JDBC 驱动**:
- JDBC (Java Database Connectivity) 是 Java 语言与数据库交互的接口标准,它允许 Java 应用程序连接到各种类型的数据库,包括 MySQL。在监控 MySQL 时,需要将 MySQL 的 JDBC 驱动(如 `mysql-connector-java-5.1.12-bin.jar`)复制到 SiteScope 的指定目录(如 `sitescope\java\lib\ext`)下,以便 SiteScope 能识别并连接 MySQL。
2. **配置 SiteScope**:
- **新建组**:在 SiteScope 主界面创建一个自定义组,用于组织和管理监控任务。
- **新建监控器**:在新建组下选择“新建监控器”,选择“数据库计数器”类型,用于监控 MySQL 数据库的性能指标。
- **设置数据库连接**:配置数据库连接 URL(如 `jdbc:mysql://IP/数据库名称`),例如 `jdbc:mysql://206.168.191.19/aBigDatabase`,并指定查询语句,如 `show status where variable_name like 'innodb_buffer_pool_pages_total'`,这里监控的是 InnoDB 缓冲池页面总数。
- **设置数据库驱动**:指定 MySQL 的 JDBC 驱动程序,即 `org.gjt.mm.mysql.Driver`。
- **获取计数器**:点击“获取计数器”,保存设置,SiteScope 将开始收集 MySQL 的性能数据。
3. **连接 LoadRunner**:
- 在 LoadRunner 的 Controller 中,通过“运行”菜单的“添加 SiteScope”将 SiteScope 的监控结果引入,这样 LoadRunner 就能显示 MySQL 的性能数据,便于进行负载测试分析。
4. **允许远程访问 MySQL**:
- 对于远程访问 MySQL 数据库,需要在 Linux 系统中修改 MySQL 的权限设置。登录 MySQL(如 `/usr/local/mysql/bin/mysql -uroot-p`),进入 `mysql` 数据库,查看 `user` 表中是否存在 `host=localhost` 且 `user=root` 的记录。如果存在,使用 `UPDATE` 语句将 `localhost` 替换为 `%`,允许任何主机访问。然后执行 `flush privileges` 命令刷新权限,使改动生效。
5. **MySQL 常用计数器**:
- **Threads_connected**:表示当前连接到 MySQL 服务器的客户端数量。如果这个值持续过高,可能意味着并发连接过多,需要检查网络状况和数据库配置。
- **Threads_running**:指示当前执行查询的线程数量。如果这个值长时间超过预设限制,可能表明数据库超负荷工作,需要优化查询或者提升硬件性能。
监控 MySQL 数据库性能是确保应用系统稳定性和效率的关键步骤。通过 LoadRunner 和 SiteScope 结合使用,可以有效地评估和调整数据库的性能,预防潜在的性能瓶颈和故障。同时,理解并监控关键计数器可以帮助诊断和解决问题,提高数据库的管理效率。