性能评测系列(PT-010):Spring Boot + MySQL,高并发insert
2024-06-25 15:08 阅读(284)

一、测试概述

测试场景

场景编号: PT-010

场景描述: Java应用,MySQL单表写

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


部署拓扑(图)

测试环境

应用部署华为云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-0015s20002633446 100%9290224.25
PT-010-0025s50002623856 100%9326563.19
PT-010-0035s100002526576 96.3%90501107.35
PT-010-0045s150002653311 87%102121455.04
PT-010-优化5s200003137506 99%104741880.96

应用服务器性能监控

image-20240619101915681.png

image-20240619101928430.png

RDS性能监控

image-20240619111319838.png

压测指标charts(部分对比)

image-20240619110212274.png

三、事实结论描述

负载能力: 当前测试环境下,5秒超时,并发用户可达:1W左右,RPS在1万左右。

应用服务器: CPU负载波峰在25%左右,内存无明显波峰,TCP连接数波峰在1W左右。

云数据库: CPU负载波峰在50%左右,内存略有增长,TPS在9800左右(最高可达1万1)

综合分析: 随着并发用户数增加,平均RT呈现较为线性的同比增长,但RPS变化并不明显。

优化预告: 在调整架构(多实例负载均衡),并发数明显增加(测至2W无明显报错),但RPS仍在1W左右。(PT-010-优化)

影响分析: 并发容载能力与应用优化相关,RPS受限于数据库写能力。(当前分析仅限于本测试场景)

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


                       

原文链接:https://blog.csdn.net/luckcxy/article/details/139912128