第八章 项目优化3.1
本章节视频:
1 优化需求
视频播放页面用户未登录也可以访问,当用户观看试学课程时需要请求服务端查询数据,接口如下:
1、根据课程id查询课程信息。
2、根据文件id查询视频信息。
这些接口在用户未认证状态下也可以访问,如果接口的性能不高,当高并发到来很可能耗尽整个系统的资源,将整个系统压垮,所以特别需要对这些暴露在外边的接口进行优化。
下边对 根据课程id查询课程信息 接口进行优化,下边的内容将此接口简称为课程查询接口。
接口地址:http://www.51xuecheng.cn/open/content/course/whole/{courseId}

2 压力测试
2.1 性能指标
对接口进行优化之前需要对接口进行压力测试,不仅接口需要压力测试,整个微服务在发布前也是需要经历压力测试的,因为压力测试可以暴露功能测试所发现不了的问题。
功能测试即是对系统的功能按用户需求进行测试,比如:添加一门课程,根据需求文档先准备测试数据,再通过前端界面将一门课程添加到系统,测试是否可以操作成功。整个过程就是测试软件是否可以实现用户的需求。
压力测试是通过测试工具制造大规模的并发请求去访问系统,测试系统是否经受住压力。
比如:一个在线学习网站,上线要求该网站可以支持1万用户同时在线,此时就需要模拟1万并发请求去访问网站的关键业务流程,比如:测试点播学习流程,测试系统是否可以抗住1万并发请求。
一些功能测试时无法发现的问题在压力测试时就会发现,比如:内存泄露、线程安全、IO异常等问题。
压力测试常用的性能指标如下:
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过大也会影响性能指标。
请免费关注 预见猿份 公众号,发送:yjoffer.com,获取解锁密码
微信扫码关注关注公众号回复获取密码后,在下方输入并点击解锁,本机后续再读无需重复输入。
