预见猿份
主题
首页面试题模拟面试SQL练习在线工具关于我们老苗一对一私教学员评价
实战项目
零基础学习路线项目前置基础创新WMS项目Java微服务框架与实战云岚到家项目闪聚支付项目学成在线项目青橙电商项目JVM原理与实战调优分布式事务专题Java高频面试题MySQL从入门到精通达梦数据库从入门到实战MongoDB从入门到实战PostgreSQL从入门到实战TiDB从入门到实战Java数据结构与算法Java 并发编程(JUC)实战课程老苗一对一私教学员评价
blog我的会员
  • 学成在线项目

    • 项目介绍
    • 项目安装配置
    • 第一章 项目介绍&环境搭建
    • 第二章 内容管理模块
    • 第三章 媒资管理模块
    • 第四章 课程发布
    • 第五章 认证授权
    • 第六章 选课学习
    • 第七章 项目部署
    • 第八章 项目优化
    • 第九章 项目总结







----- 到底线了 -----

第八章 项目优化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,获取解锁密码

公众号二维码微信扫码关注

关注公众号回复获取密码后,在下方输入并点击解锁,本机后续再读无需重复输入。

← 第七章 项目部署第九章 项目总结 →








如果发现文档内容有错误或排版错乱,请及时联系站长老苗修改,不胜感激。联系我们
关于我们 | 隐私政策 | 豫ICP备2026003386号-4 | 豫公网安备41010202004008号
目录

本页无章节