性能评测系列(PT-013):Spring Boot(K8s多实例) + GaussDB,高并发insert
性能评测系列(PT-013):Spring Boot(K8s多实例) + GaussDB,高并发insert
·
一、测试概述
测试场景
- 场景编号: PT-013
- 场景描述: Java应用(K8s容器化部署,多实例负载均衡),GaussDB for MySQL 单表insert
- 测试目的: GaussDB,Java应用数据库单表insert场景负载能力评估。(不含调优,仅评测以作参考)
部署拓扑(图)
测试环境
应用部署 | CCE Turbo、Node节点 * 3:华为云c7系列 4vCPUs 8GiB,EulerOS 2.9,通用型SSD |
---|---|
云数据库 | GaussDB(for MySQL 8.0),独享型 鲲鹏 8 vCPUs 32 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-013-001 | 5s | 2000 | 7651469 | 100% | 25618.2 | 77.04 |
PT-013-002 | 5s | 5000 | 7727526 | 100% | 25696.3 | 190.95 |
PT-013-003 | 5s | 10000 | 7420567 | 99% | 25965.7 | 397.92 |
PT-013-004 | 5s | 20000 | 7056087 | 99% | 21402.4 | 837.1 |
PT-013-005 | 5s | 30000 | 7827136 | 99% | 26797.3 | 1047.07 |
应用服务器性能监控
GaussDB性能监控
压测指标charts(部分对比)
三、事实结论描述
- 负载能力: 当前测试环境下,5秒超时,并发用户可达:2W左右,RPS在2万5左右。
- 应用服务器: CPU负载波峰在35%左右,内存无明显波峰,TCP连接数波峰在5W左右。
- 云数据库: CPU负载波峰在80%左右,内存略有增长,Insert在2万6左右
- 综合分析: 随着并发用户数增加,平均RT呈现较为线性的同比增长,但RPS变化并不明显。
- 对比分析: 与
PT-012
中的RDS对比,并发容载能力相同,RPS大幅提升。 - 影响分析: 并发容载能力与应用优化相关,RPS受限于数据库写能力。(当前分析仅限于本测试场景)
注意:当前的分析基于本次测试环境下,对测试结果进行事实描述,并不代表最优结果。仅供参考评估。
往期精彩内容推荐
性能评测系列(PT-012):Spring Boot(K8s多实例) + MySQL,高并发insert
性能评测系列(PT-010):Spring Boot + MySQL,高并发insert
云原生:10分钟了解一下Kubernetes架构
更多推荐
已为社区贡献5条内容
所有评论(0)