性能评测系列(PT-010):Spring Boot + MySQL,高并发insert
【摘要】 性能评测系列(PT-010):Java应用数据库简单写场景负载能力评估
一、测试概述
测试场景
- 场景编号: 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-001 | 5s | 2000 | 2633446 | 100% | 9290 | 224.25 |
PT-010-002 | 5s | 5000 | 2623856 | 100% | 9326 | 563.19 |
PT-010-003 | 5s | 10000 | 2526576 | 96.3% | 9050 | 1107.35 |
PT-010-004 | 5s | 15000 | 2653311 | 87% | 10212 | 1455.04 |
PT-010-优化 | 5s | 20000 | 3137506 | 99% | 10474 | 1880.96 |
应用服务器性能监控
RDS性能监控
压测指标charts(部分对比)
三、事实结论描述
- 负载能力: 当前测试环境下,5秒超时,并发用户可达:1W左右,RPS在1万左右。
- 应用服务器: CPU负载波峰在25%左右,内存无明显波峰,TCP连接数波峰在1W左右。
- 云数据库: CPU负载波峰在50%左右,内存略有增长,TPS在9800左右(最高可达1万1)
- 综合分析: 随着并发用户数增加,平均RT呈现较为线性的同比增长,但RPS变化并不明显。
- 优化预告: 在调整架构(多实例负载均衡),并发数明显增加(测至2W无明显报错),但RPS仍在1W左右。(PT-010-优化)
- 影响分析: 并发容载能力与应用优化相关,RPS受限于数据库写能力。(当前分析仅限于本测试场景)
注意:当前的分析基于本次测试环境下,对测试结果进行事实描述,并不代表最优结果。仅供参考评估。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)