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

devtools/2024/9/17 17:21:17/ 标签: 性能测试

各位好,我是 

@道普云

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

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

@道普云

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

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


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

系统架构情况如下:

存在的问题主要有:

· 业务响应时间长。

· 业务处理失败率高。

· 用户提交数据丢失。

· 功能操作错误。

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

前端程序问题现象及监控

前端页面响应时间过长。

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

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

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

前端程序问题分析诊断

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

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

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

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

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

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

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

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

软件架构问题现象及监控

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

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

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

软件架构问题分析诊断

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

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

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

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

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

程序算法问题分析诊断

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

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

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

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

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

程序算法问题分析诊断

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

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

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

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

部署运维问题分析诊断

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

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


http://www.ppmy.cn/devtools/107695.html

相关文章

UDP简单聊天室创建

目录 一. 服务端模块实现 二. 处理聊天消息模块实现 三. 调用服务端模块实现 四. 客户端模块实现 五. 效果展示 本文介绍了如何用UDP创建一个简单的聊天室。 一. 服务端模块实现 服务端仍然沿用我们前面的思想(高内聚低耦合)&#xf…

c++ 原型模式

文章目录 什么是原型模式为什么要使用原型模式使用场景示例 什么是原型模式 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象,简单理解就是“克隆指定对象” 为什么要使用原型模式 原型模式(Prototype Pattern)是…

青岛实训 8月22号 day34

一、回顾 1.主从复制(高可用) 2.传统的主从复制 3.gtids事务型的主从复制 4.注意 1)server_id唯一 2)8.X版本需要get_ssl_pub_key 3)5.X不需要 4)change master to 5)stop | start slave 5.非…

【AIGC】Transformer模型:Postion Embedding概述、应用场景和实现方式的详细介绍。

🏆🏆欢迎大家来到我们的天空🏆🏆 🏆🏆如果文章内容对您有所触动,别忘了点赞、关注,收藏! 🏆 作者简介:我们的天空 🏆《头衔》&#x…

RestTemplateRibbonOpenFeign

网络模型 OSI七层模型 RestTemplate Ribbon 在微服务中的ribbon 实现负载均衡服务间调用的三种方式 ribbon其他负载均衡策略 OpenFeign 实战

Python知识点:如何使用Mock库进行单元测试中的依赖模拟

在 Python 单元测试中,unittest.mock(简称 Mock 库)是一个非常有用的工具,用于模拟依赖项,尤其是那些在测试环境中不易控制或不需要真正执行的依赖。例如,模拟网络请求、数据库连接或某些函数调用的返回值等…

【C++ | 设计模式】观察者模式的详解与实现

1.概念 观察者模式(Observer Pattern)是一种行为型设计模式,它的核心思想是定义对象间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。这个模式在现实生活中非常常见&#…

『功能项目』怪物的信息显示【15】

本章项目成果展示 我们打开上一篇14怪物反击主角复活的项目, 本章要做的事情是当主角进入怪物的攻击范围之内时显示怪物的血量信息 在Canvas创建一个空物体 将空物体GameObject钉到视角上方 重命名为KingInfoUI 在子级创建一个Image 在资源文件夹下创建一个空文件命…

用MobaXterm工具的Linux远程SSH登录

去官网下载 MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition (mobatek.net)

机器学习之 PCA降维

1.PCA 降维简介 主成分分析(Principal Component Analysis, PCA)是一种统计方法,用于在数据集中寻找一组线性组合的特征,这些特征被称为主成分。PCA 的目标是通过变换原始特征空间到新的特征空间,从而减少数据的维度&…

使用 patch 修改第三方依赖包源码

在实际开发中,可能会遇到第三方依赖出现BUG,提交PR等待官方修复比较耗时,此时可以考虑直接修改项目第三方依赖包的代码来解决问题比较符合实际。 本文主要介绍 pnpm patch、pnpm patch commit 打补丁的方式来实现 具体操作 首先&#xff0c…

2024.9计算机视觉设计开发工程师专项培训通知

为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署要求,深入实施人才强国战略和创新驱动发展战略,加强全国数字化人才队伍建设,持续推进人工智能从业人员…

S3C2440开发板:时钟,PWM定时器控制蜂鸣器发声

时钟 时钟和电源管理模块由三部分组成:时钟控制,USB 控制和电源控制。 S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括 CPU 的 FCLK,AHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环&#xff08…

2024高教社杯数学建模国赛ABCDE题选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;A<C<B 。 D、E题推荐选E题&#xff0c;后续会直接更新E论文和思路&#xff0c;不在这里进行选题分析&#xff0c;以下为A、B、C题选题建议及初步分析 A题&#xff1a;“板凳龙”…

一本就能看懂中医+体质篇

体质篇 体质的组成&#xff1a;体质养生须注重生活调摄 体质偏颇的常见原因 体质养生的宗旨望诊望形体望气色望神望舌 闻诊听声音&#xff0c;闻气味 问诊问寒热&#xff0c;问情志&#xff0c;问出汗&#xff0c;问经带&#xff0c;问二便&#xff0c;问饮食起居 切诊 今天开始…

项目日志——相关技术补充(2)

文章目录 设计类的六大原则四种设计模式及其实现单例模式饿汉模式懒汉模式 工厂模式简单工程模式工厂方法模式抽象工厂模式 建造者模式代理模式 设计类的六大原则 单一职责原则 就是说每一个类只做一件事情&#xff0c;职责划分清晰两个不一样的功能就不能放在同一个类中&…

[OpenCV] 数字图像处理 C++ 学习——11自定义线性滤波 附完整代码

文章目录 前言1.理论基础(1)Roberts 算子 (Roberts Operator)(2)Sobel 算子 (Sobel Operator)(3)拉普拉斯算子 (Laplacian Operator) 2.代码实现(1)Roberts 算子(2)Sobel 算子(3)拉普拉斯算子 3.完整代码 前言 线性滤波用于去噪、平滑、边缘检测等操作。通过定义卷积核&#x…

HTTP代理支持UDP协议吗?

在网络通信中&#xff0c;HTTP代理和UDP协议是两个常见但功能和用途不同的技术。本文将详细探讨HTTP代理是否支持UDP&#xff0c;以及在什么情况下可以实现两者的结合。 HTTP代理的基本概念 HTTP代理是一种代理服务器&#xff0c;用于处理HTTP请求和响应。它在客户端和目标服…

数据结构与算法 第10天(图的应用)

一、最小生成树 生成树&#xff1a;所有顶点均由边连接在一起&#xff0c;但不存在回路 一个图可以有多颗不同的生成树 生成树特点&#xff1a;生成树的顶点个数与图的顶点个数相同; 生成树是图的极小连通子图&#xff0c;去掉一条边则非连通, 一个有 n个顶点的连通图的生成…

[论文笔记]大模型微调数据配比策略

大模型微调数据配比策略 How Abilities in Large Language Models are Affected by Supervised Fine-tuning Data Composition https://arxiv.org/pdf/2310.05492 一、背景&#xff1a; 大模型是无监督的多任务学习器&#xff0c;其强大的泛化能力可以同时理解并执行多种任务…