性能——day3
学习目标:性能结果分析,分压
一、性能结果分析
1、分析聚合报告的事物成功率值是100%,到达预定值,所以本次测试结果是有效的
2、 然后观察其他性能指标,发现事物响应时间超过了预定的2s
3、我们知道事物响应时间=网络消耗时间+web服务器消耗时间+sql消耗时间
4、我们先分析网络
1、使用ping命令查看网络是否稳定(问题处理方案:要么过会再测试,要么更换网络)
2、检查交互数据是否过大(问题处理:让开发先压缩再传递)
3、检查交换机,路由器,光猫等工作是否正常(问题处理:要么重起,要么更换设备)
4、检查网络使用率是否超过预定值(问题处理:升级网络)
分析过程:
1、先看最高点:46153.8,确认单位:b(字节)
2、单位换算:1G=1024m
1m=125-128kb
1kb=1024b
所以46153.8b≈45.072kb≈0.361m
算下最高时,网络的使用率:0.361m/网线大小(5m)≈7.22%
5、网络没问题,接着分析服务器层面
1、检查服务器配置是否过低(问题处理:升级配置)
在测试计划可以看到服务器配置
2、检查sql是否存在慢查询()
监控是否存在慢查询:
1、使用xshell链接linux服务器
2、搜索my.cnf所在的路径
3、使用 vim /etc/my.cnf
4、在指定地方加入两个指令
5、保存退出:esc+shift+:+w+q
6、重启mysql服务
7、使用tail -f /var/lib/mysql/mysql-slow.log ,动态查看日志,然后就开始做性能测试,如果有日志,显示,表示有慢查询问题
3、如果上面都没有问题,那么我们会把排除后的结果告诉开发,让他去定位下相关代码
二、造成慢查询的原因
1、缺少索引
2、索引失效
隐士转换:本来索引的字段是字符串,但写成了数字类型查询
explain SELECT * FROM demo2 WHERE NAME=1
使用到了like模糊查询:
explain SELECT * FROM demo2 WHERE NAME LIKE '85'
3、数据量过大
三、索引是什么
作用:加快查询速度
四、索引的类型
1、主键索引:创建主键时,就自动创建
2、普通索引:
CREATE INDEX 索引名 ON 表名(列名)
3、唯一索引
create unique index 索引名 on 表名(列名)
4、组合索引
5、函数索引
6、位图索引
五、存储过程
1、存储过程是什么
是一系列的sql,经过编译后在数据库中,以后直接调用存储过程,就可以完成相应的功能,无需再次编写代码,可以实现一个人编写,多人使用。
2、存储过程的语法(以插入数据为案例)
语法:
delimiter 其他标点符号
create procedure 存储过程名称([输入/输入类型 变量名称 数据类型])
begin定义一个变量设置开始值为1;-- 循环做事情while 前面定义的变量 <= 目标数字 do-- 插入语法insert into 表名 values (值1,值2,值3...);-- 每运行一次,让前面的变量都+1set 前面的变量 = 前面的变量 + 1;end while ;
end 其他标点符号
delimiter ;
案例:
#创建表
CREATE TABLE demo2(id INT PRIMARY KEY,NAME CHAR(100)
)CHARSET=UTF8;
#插入50000条数据
delimiter //
CREATE PROCEDURE pro_demo2(IN num INT)#in表示num是传入的参数
BEGIN
#定义一个变量,设置开始值为1DECLARE i INT DEFAULT 1;
#while循环while i<=num DO
#插入语法INSERT INTO demo2 VALUES(i,i);
#每运行一次,都让i自动加1SET i=i+1;END while;
END //
delimiter ;#调用存储过程
CALL pro_demo2(10);
#查询插入的数据
SELECT * FROM demo2;
3、如何查看表的索引
show index from 表名
或者可视化查看
4.执行SQL,如何查看这个SQL是否走索引
三、分布式压力测试(分压)
原理:
步骤
1.保证主控机跟分压机在同一网络
2.保证主控机跟分压机得jdk版本一致
3.关闭防火墙跟禁用多余IP
4.在分压机得jmeter目录下找到jmeter.properties,然后修改remote_hosts=本机ip,然后找到ssl.disable,把值修改为true
5.在分压机启动jmeter-server.bat
6.在主控机得jmeter目录下找到jmeter.properties,然后修改remote_hosts=本机ip,分压机IP,然后找到ssl.disable,把值修改为true
7.在主控机启动jmeter-server.bat
8.把主控机脚本复制一份到分压机,保证路径,文件名称,大小一致