当前位置: 首页 > news >正文

性能评测系列(PT-010):Spring Boot + MySQL,高并发insert

PT-010.png

一、测试概述

测试场景

  • 场景编号: PT-010
  • 场景描述: Java应用,MySQL单表写
  • 测试目的:指定规格、配置、环境下,Java应用数据库简单写场景负载能力评估。(不含调优,所测结果未必是最优结果,仅评测以作参考

部署拓扑(图)

image-20240619112719740.png


测试环境

应用部署华为云c7系列 4vCPUs 8GiB,CentOS 7.6 64bit,通用型SSD(40GiB)
云数据库MySQL(8.0),独享型 4 vCPUs 8 GB ,极速型SSD(100 GB),主备,多AZ
软件环境JDK 1.8.0_151、Spring Boot 2.3.3.RELEASE、jar方式运行、内嵌Tomcat 9.0.37
网络环境华为云 静态BGP 100 Mbit/s
测试环境locust集群(48 workers)、单次测试时间:5分钟、每秒增加10%并发用户,零思考
其他说明为规避大量历史数据对insert性能影响,每次测试后都会执行TRUNCATE操作

优化调整

优化对象优化项优化内容
云服务器(应用服务器)OS配置net.1pv4.tcp_max_tw_buckets=20000
Java应用数据库连接数max-active: 400


二、测试过程

测试结果统计

测试任务超时并发数成功入库成功率RPS平均RT
PT-010-0015s20002633446100%9290224.25
PT-010-0025s50002623856100%9326563.19
PT-010-0035s10000252657696.3%90501107.35
PT-010-0045s15000265331187%102121455.04
PT-010-优化5s20000313750699%104741880.96

应用服务器性能监控

image-20240619101902634.png

image-20240619101915681.png

image-20240619101928430.png


RDS性能监控

image-20240619111319838.png


压测指标charts(部分对比)

image-20240619110212274.png



三、事实结论描述

  1. 负载能力: 当前测试环境下,5秒超时,并发用户可达:1W左右,RPS在1万左右。
  2. 应用服务器: CPU负载波峰在25%左右,内存无明显波峰,TCP连接数波峰在1W左右。
  3. 云数据库: CPU负载波峰在50%左右,内存略有增长,TPS在9800左右(最高可达1万1
  4. 综合分析: 随着并发用户数增加,平均RT呈现较为线性的同比增长,但RPS变化并不明显。
  5. 优化预告: 在调整架构(多实例负载均衡),并发数明显增加(测至2W无明显报错),但RPS仍在1W左右。(PT-010-优化)
  6. 影响分析: 并发容载能力与应用优化相关,RPS受限于数据库写能力。(当前分析仅限于本测试场景)

注意:当前的分析基于本次测试环境下,对测试结果进行事实描述,并不代表最优结果。仅供参考评估。


往期精彩内容推荐

云原生:10分钟了解一下Kubernetes架构
云原生:5分钟了解一下Kubernetes是什么
「快速部署」第二期清单
「快速部署」第一期清单

http://www.lryc.cn/news/382672.html

相关文章:

  • 网站改成HTTPS方法
  • 智慧社区:居民幸福生活的保底线,价值非常大。
  • 《昇思25天学习打卡营第1天|NapKinG》
  • Java项目毕业设计:基于springboot+vue的幼儿园管理系统
  • CPU1511作为CPU1513的智能IO设备
  • docker 安装与常用指令
  • 如何将 gz 文件通过 local data 导入 OceanBase?
  • electron+vue3+vite
  • react笔记-04redux篇
  • oracle 等待事件
  • Vue 的 axios二次封装
  • 实验操作步骤:使用Tripwire进行文件完整性监控
  • 使用达梦DMHS平滑迁移Oracle数据到DM8
  • Java面试题:讨论事务的ACID属性,并解释在Java中如何管理事务
  • 第 5 章理解 ScrollView 并构建 Carousel UI
  • MySQL锁、加锁机制(超详细)—— 锁分类、全局锁、共享锁、排他锁;表锁、元数据锁、意向锁;行锁、间隙锁、临键锁;乐观锁、悲观锁
  • 如何在Java中实现文件上传和下载?
  • SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)
  • ravynOS 0.5.0 发布 - 基于 FreeBSD 的 macOS 兼容开源操作系统
  • 韩国面临的本地化挑战
  • Linux内存从0到1学习笔记(8.17 SMMU Fault调试方法)
  • 讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)
  • 鸿蒙开发系统基础能力:【@ohos.hichecker (检测模式)】
  • WordPress CDN是什么?CDN有什么作用?
  • 【containerd】Containerd高阶命令行工具nerdctl
  • Spring+SpringMVC+MyBatis整合
  • springboot+vue+mybatis穷游管理系统+PPT+论文+讲解+售后
  • ClickHouse备份方案
  • windows启用和禁用内存压缩
  • MATLAB-振动问题:单自由度无阻尼振动系统受迫振动