性能测试经典案例解析——远程培训系统

各位好,我是 

@道普云

一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。

欢迎关注我的专栏和我的主页

@道普云

文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。

希望这篇文章对想提高软件测试水平的你有所帮助。


远程培训系统的项目背景主要有以下特点:总体用户量大,达到30万级别;业务并发量大,部分业务估算用户量达到10万并发级别;业务处理实时性要求高,要求响应时间非常短;再就是业务处理可靠性要求高,系统一旦出现问题,就会给30万数量级的用户带来很大的困难、无法使用平台,再去组织这30万的用户去进行远程培训的代价非常之大。

系统架构情况如下:

存在的问题主要有:

· 业务响应时间长。

· 业务处理失败率高。

· 用户提交数据丢失。

· 功能操作错误。

我们从时间分布、资源分布、异常信息三个方面去分析诊断。根据分析,总结出以下五大问题:前端程序问题、基础软件配置问题、软件架构问题、程序算法问题、部署运维问题。

前端程序问题现象及监控

前端页面响应时间过长。

通过HTTPWatch发现哪些请求处理时间过长,连接出现阻塞。

通过Web服务器资源监控发现带宽值达到极限,处理器资源利用率也较高。

通过其他服务器资源监控发现资源利用率较低。

前端程序问题分析诊断

主要是由于前端脚本文件、样式文件、图片文件等数量过多,造成首次访问连接数过多。

部分静态文件体积过大,未使用压缩算法造成数据传输量过大。

基础软件配置问题现象及监控

前端页面响应时间过长,部分写入业务处理操作失败率较高。

通过HTTPWatch发现哪些请求处理时间过长。

通过Web服务器、应用服务器资源监控发现处理器资源利用率也较高。

基础软件配置问题分析诊断

通过比对测试发现Web服务器缓存失效、Jetty线程池配置不合理。

软件架构问题现象及监控

系统登录操作响应时间过长。

通过在应用程序中加入相关时间监控日志,定位向Hazelcast内存数据库写入登录信息时间过长。

通过应用服务器、数据库服务器资源监控发现资源占用合理。

软件架构问题分析诊断

通过与开发人员讨论分析发现,采用同步架构写入数据库,导致写入请求量较大时写入速度明显减慢。

程序算法问题现象及监控(1)

作业提交操作响应时间过长。

通过在应用程序中加入相关时间监控日志,定位向内存数据库Hazelcast写入作业内容数据、向消息中间件写入作业属性数据信息时间过长。

通过应用服务器资源监控发现处理器资源占用较高。

程序算法问题分析诊断

通过与开发人员讨论分析发现,单线程负责完成内容数据、属性数据的处理,处理逻辑较多。

程序算法问题现象及监控(2)

课程学习功能错误,学习日志写入Hazelcast、Mongodb、MySQL等,各数据库学习日志统计数据不统一。

通过在应用程序中加入统计数据监控日志,发现程序算法设计存在问题,各数据库计算结果在高并发情况下容易出现误差。

通过各服务器资源监控发现资源使用在正常范围内。

程序算法问题分析诊断

通过与开发人员讨论分析发现,由于应用服务器多线程处理速度为秒级,应用服务器时间不统一,导致日志数据写入数据库时,数据会被多次计算。远程培训系统-部署运维问题现象及监控

个人门户首页操作响应时间过长。

通过在应用程序中加入相关时间监控日志,定位应用服务器处理时间过长。

通过应用服务器资源监控发现IO资源占用较高。

部署运维问题分析诊断

通过对占用IO资源的Java线程进行分析,发现Log4j日志相关线程进行了大量写入操作,发现其日志级别设置过高,写入数据量过大。

通过以上几个方面的诊断,就可以全面地排查出系统的性能问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/417276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5.sklearn-朴素贝叶斯算法、决策树、随机森林

文章目录 环境配置(必看)头文件引用1.朴素贝叶斯算法代码运行结果优缺点 2.决策树代码运行结果决策树可视化图片优缺点 3.随机森林代码RandomForestClassifier()运行结果总结 本章学习资源 环境配置(必看) Anaconda-创建虚拟环境…

Keil下载烧录程序到单片机提示flash outtime超时

Flash Timeout.Reset the Target and try it again. Error:Flash Download failed - “Cortex-M4” 解决方法: 1.检查杜邦线 2.RESET按键按一下再下载(或者一直按着下载),这样能让单片机进入烧录模式。 3.有外部看门狗,外部看门狗用跳帽屏…

『功能项目』DOTween动态文字【26】

打开上一篇25协程生成怪物模型的项目, 本章要做的事情是用DOTween插件做一个动态文字效果 首先在资源商店中免费下载一个DOTween插件 新建脚本:DowteenFlicker.cs 编写脚本: using DG.Tweening; using UnityEngine; using UnityEngine.UI;pu…

2024 年高教社杯全国大学生数学建模竞赛题目-C 题 农作物的种植策略

根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济 的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略,有利于方便田间管理,提 高生产效益&#…

在模板中使用 Django 会话

在 Django 中使用会话(session)可以让你在用户访问网站的过程中存储和访问临时数据。我们可以利用会话在速度计算器的例子中存储和显示上次计算的结果。 1、问题背景 在 Django 中,可以使用会话来存储用户数据。在某些情况下,我们…

Python实战项目:天气数据爬取+数据可视化(完整代码)_python爬虫实战

一、选题的背景 随着人们对天气的关注逐渐增加,天气预报数据的获取与可视化成为了当今的热门话题,天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过…

[数据集][目标检测]翻越栏杆行为检测数据集VOC+YOLO格式512张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):512 标注数量(xml文件个数):512 标注数量(txt文件个数):512 标注类别…

datagrip链接sql server2005报错

错误信息 第一次报 DBMS: Microsoft SQL Server (no ver.) Case sensitivity: plainmixed, delimitedexact [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client pr…

iPhone无法充电?别急,这几招帮你轻松解决充电难题!

在这个智能手机不离手的时代,iPhone作为众多用户的首选,其续航能力和充电效率自然成为了大家关注的焦点。然而,偶尔遇到iPhone无法充电的情况,确实让人头疼不已。别担心,今天我们就来聊聊iPhone无法充电的几大常见原因…

LeetCode:快乐数(202)

目录 题目 代码思路 双指针 代码实现 题目 202. 快乐数 - 力扣(LeetCode) 编写一个算法来判断一个数 n 是不是快乐数。 [ 快乐数 ] 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程…

echarts地图绘制并实现下钻功能

本文参考网址 使用echarts地图需要先准备好echarts地图渲染需要的json数据&#xff0c;数据可以从阿里云地址中下载自己需要的&#xff0c;下载之后直接引入即可使用&#xff0c;本文针对全国地图做一个简单的demo 阿里云界面如图 // 1、准备echarts地图容器<div class&…

【python面向对象】

一、魔术函数 在Python中&#xff0c;xx()的函数叫做魔法函数&#xff0c;指的是具有特殊功能或者有特殊含义的函数&#xff0c;而且这些函数都是在某种情况下自动调用的。 eg: init函数 __init__() :对象的初始化函数&#xff0c;在创建一个对象的时默认被调用&#xff0c;…

RabbitMQ本地Ubuntu系统环境部署与无公网IP远程连接服务端实战演示

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 安装内网穿透工具3.1 安装cpolar内网穿透3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&am…

基于飞桨paddle2.6.1+cuda11.7+paddleRS开发版的目标提取-道路数据集训练和预测代码

基于飞桨paddle2.6.1cuda11.7paddleRS开发版的目标提取-道路数据集训练和预测代码 预测结果&#xff1a; 预测影像&#xff1a; &#xff08;一&#xff09;准备道路数据集 下载数据集地址&#xff1a; https://aistudio.baidu.com/datasetdetail/56961 mass_road.zip …

通过 pnpm 安装依赖包会发生什么

通过 pnpm 安装依赖包会发生什么 通过 pnpm 下载的包都是放在一个全局目录&#xff08;.pnpm-store&#xff09;下&#xff0c;默认是在 ${os.homedir}/v3/.pnpm-store&#xff0c;如果我们不确定在哪里&#xff0c;可以输入下面的命令手动配置&#xff1a; pnpm set store-d…

若依 Vue3的前后端分离系统管理 创建 使用

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…

IP/TCP/UDP协议的关键知识点

导语&#xff1a;网络协议是理解网络情况的基础&#xff0c;当遇到网络问题时&#xff0c;首先可以从网络协议入手&#xff0c;熟悉的网络协议可以有效帮助小伙伴们排查或者说定位大概的问题方面。本文整理了目前最常用的网络通信协议&#xff0c;相信对小伙伴们肯定都有帮助。…

cookie实战案例-自动登录网站

在写爬虫的时候&#xff0c;要伪装成真实用户请求。可能需要大量的IP地址&#xff0c;那么大量的IP地址从哪里来呢&#xff1f;这里就需要用代理IP来解决了&#xff0c;有的网站专门通过提供代理IP池服务作为主要的经营业务&#xff0c;只要注册相关网站开通对应套餐就可以了。…

Java笔试面试题AI答之JDBC(1)

文章目录 1. 什么是JDBC&#xff1f;2. 驱动(Driver)在JDBC中的角色&#xff1f;3. JDBC PreparedStatement比Statement有什么优势&#xff1f;1. 预编译和性能提升2. 参数化查询和安全性3. 更好的可读性和可维护性4. 支持批量操作5. 缓存机制&#xff08;特定数据库环境&#…

2024 高教社杯 数学建模国赛 (A题)深度剖析|“板凳龙” 闹元宵|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; CS团队倾注了大量时间和心血&#xff0c;深入挖掘解…