本次实验,是在自己的电脑上使用APMServ5.2.6部署Discuz2.X论坛下,对该论坛的数据库MySQL5.1进行性能测试的,下面讲述LoadRunner在设计场景时,如何利用siteScope工具监控MySQL数据库性能:
一、在网上下载siteScope
我在网上搜了很久,发现siteScope软件的下载资源很少,毕竟它是收费的,想找个破解版,不过还是有的,哈哈。。。但是版本旧了点siteScope7.9.5
下载地址:http://download.csdn.net/detail/yjjgenery/3123988 ,将part1 、part2、part3、part4都下载下来。
二、安装siteScope
安装siteScope很简单,点击“下一步”,当出现安装路径时,选择for LoadRunner,直到安装完成。打开的页面,如图:
点击“Open SiteScope”,跳转到输入license信息页面,如图:
输入license信息:SiteScope License Key: HA23601184090000-993431
Optional Monitor Licenses: HA23601184090000-010027
三、添加监控的MySQL
1.打开浏览器访问:http://192.168.1.103:8888/SiteScope 点击Manage Monitors/Groups,添加新建组,输入自定义的组名,即可成功添加组,我这里添加组为MySQL,注意这里的“For Monitor Type”选择Database Subgroup。
2.点击edit, 对MySQL监控器设置,输入对应的数据库信息,点击update,如图:
数据库连接URL:jdbc:mysql://IP/数据库名称;查询:show status;
数据库驱动程序:org.gjt.mm.mysql.Driver;数据库用户名:root,数据库密码:****
3.点击update,页面提示无法找到驱动mysql-connector-java-5.1.13-bin.jar,解决方法是在网上下载MySQL JDBC驱动,安装后,在控制面版--管理工具--数据源里面添加一个名为“org.gjt.mm.mysql.Driver”的MySQL ODBC5.1数据源,然后把“mysql-connector-java-5.1.13-bin.jar”文件复制到(sitescope安装目录下)sitescope\java\lib\ext下,重启系统。如图:
4.点击update,页面提示“ Monitor: error, connect error, null, message from server: "Host 'c7742dca643f4c2' is not allowed to connect to this MySQL server",原因是MySQL数据连接访问的权限不足,解决方法是通过cmd命令行,进入Mysql页面,通过SQL命令授权,如图:
5.OK,添加MySQL组监控完成,如图:显示绿色即为正常
四、使用LoadRunner场景中添加siteScope,选择MySQL组,添加性能计数器,如图
六、MySQL常用计数器
Threads_connected:表示当前有多少个客户连接该mysql服务器,连接数是否过多,网络是否存在问题,它是动态变化的,当达到最大连接数时,数据库系统就不能提供更多的连接数了,这时,程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现报错信息。
Threads_running: 如果数据库超负荷,将会得到一个正在(查询的语句持续)增长的数值。这个值也可以小于预先设定的值。这个值在很短的时间内超过限定值是没问题的。若超过预设值时且5秒内没有回落,要同时监视其他的一些值。
Aborted_clients: 客户端被异常中断的数值,对于一些应用程序是没有影响的,但对于另一些应用程序可能要跟踪该值,因为异常中断连接可能表明一些应用程序有问题。
Questions: 每秒钟获得的查询数量,也可以是全部查询的数量。
Opened_tables:指表缓存没有命中的数量。如果该值很大,就需要增加table_cache的数值。
Select_full_join:没有主键(key)联合(join)的执行。该值可能是零。这是捕获开发错误的好方法,因为这样的查询有可能降低系统的性能。
Select_scan:执行全表搜索查询的数量。如果发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。
Slow_queries:超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。
Threads_created:该值一般较低。较高的值意味着需要增加thread_cache的数值,或遇到了持续增加的连接,表明存在潜在的问题