1.接口压力测试常用的性能指标
2.接口优化的点
3.实现分布式锁的方案常用的方案
一.接口压力测试常用的性能指标:
1、吞吐量
吞吐量是系统每秒可以处理的事务数,也称为TPS(Transaction Per Second)。
比如:一次点播流程,从请求进入系统到视频画图显示出来这整个流程就是一次事务。
所以吞吐量并不是一次数据库事务,它是完成一次业务的整体流程。
2、响应时间
响应时间是指客户端请求服务端,从请求进入系统到客户端拿到响应结果所经历的时间。响应时间包括:最大响应时间、最小响应时间、平均响应时间。
3、每秒查询数
每秒查询数即QPS(Queries-per-second),它是衡量查询接口的性能指标,比如:商品信息查询, 一秒可以请求该接口查询商品信息的次数就是QPS。
拿查询接口举例,一次查询请求内部不会再去请求其它接口,此时 QPS=TPS
如果一次查询请求内容需要远程调用另一个接口查询数据,此时 QPS=2 * TPS
4、错误率
错误率 是一批请求发生错误的请求占全部请求的比例。
不同的指标其要求不同,比如现在进行接口优化,优化后的接口响应时间应该越来越小,吞吐量越来越大,以及QPS值也是越大越好,错误率要保持在一个很小的范围。
另外除了关注这些性能指标以外还要关注系统的负载情况:
1、CPU使用率,不高于85%
2、内存利用率,不高于 85%
3、网络利用率,不高于 80%
4、磁盘IO
磁盘IO的性能指标是IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数)。
如果过大说明IO操作密集,IO过大也会影响性能指标
二.接口优化的点:
1.日志优化
2.缓存优化(本地缓存,redis)
3.缓存穿透问题
三.实现分布式锁的方案常用的方案如下:
1.基于数据库实现分布锁
利用数据库主键唯一性的特点,或利用数据库唯一索引的特点,多个线程同时去插入相同的记录,谁插入成功谁就抢到锁
2.基于redis实现锁
redis提供了分布式锁的实现方案,比如:SETNX、set nx、redisson等。
SETNX命令的工作过程是去set一个不存在的key,多个线程去设置同一个key只会有一个线程设置成功,设置成功的的线程拿到锁。
http://www.redis.cn/commands/set.html
3.使用zookeeper实现
标签:方案,常用,请求,接口,查询,响应,QPS,性能指标 From: https://www.cnblogs.com/chenshaojun2008/p/17994812