Redis 分片集群 完整性能测试报告

目录标题

  • redis-2ffca4ed 分片集群 完整性能测试报告
    • 目录
    • 一、测试概述
      • 1.1 测试目标
      • 1.2 测试工具
      • 1.3 测试架构
    • 二、环境配置
      • 2.1 集群信息
      • 2.2 Redis 组件状态
      • 2.3 Predixy 配置演变
    • 三、测试阶段总结
      • 3.1 测试时间线
      • 3.2 各阶段关键指标
      • 3.3 性能提升总览
    • 四、详细性能数据
      • 4.1 初始测试 (WorkerThreads=1, 部分Pod Pending)
      • 4.2 扩容后测试 (WorkerThreads=1, 所有Pods Running)
      • 4.3 WorkerThreads优化后 (WorkerThreads=4)
    • 五、性能优化历程
      • 5.1 优化前后对比总表
      • 5.2 QPS 性能曲线对比
      • 5.3 P99 延迟对比
    • 六、瓶颈分析
      • 6.1 初始瓶颈分析
      • 6.2 优化效果分析
      • 6.3 残留瓶颈
    • 七、最终优化建议
      • 7.1 已完成优化 ✅
      • 7.2 推荐进一步优化
      • 7.3 实施命令
        • 优化1: WorkerThreads 4 → 8
        • 优化2: 增加 CPU 限制
        • 优化3: 扩容 Predixy 副本
      • 7.4 预期最终性能
    • 八、附录
      • 8.1 测试脚本
      • 8.2 测试数据
      • 8.3 相关报告

redis-2ffca4ed 分片集群 完整性能测试报告

报告生成时间: 2026-01-19
测试集群: 148 (KUBECONFIG=/bpx/.148-admin.conf)
测试地址: .149:8370
Redis 实例: redis-2ffca4ed (3分片 × 2副本 = 6个Pod)


目录

  1. 测试概述
  2. 环境配置
  3. 测试阶段总结
  4. 详细性能数据
  5. 性能优化历程
  6. 瓶颈分析
  7. 最终优化建议

一、测试概述

1.1 测试目标

本次性能测试旨在:

  • 评估 Predixy 代理在高并发场景下的性能表现
  • 识别性能瓶颈并验证优化效果
  • 对比不同 WorkerThreads 配置的性能差异
  • 为生产环境提供性能优化建议

1.2 测试工具

  • redis-benchmark: Redis 官方性能测试工具
  • 测试参数: 每次测试 100,000 次请求
  • 测试操作: SET 和 GET 操作
  • 并发范围: 50 - 4000 并发连接

1.3 测试架构

客户端 (redis-benchmark) ↓ Predixy 代理 (2副本) ↓ Redis Server (3分片 × 2副本 = 6 Pod)

二、环境配置

2.1 集群信息

项目配置
集群地址(148集群)
命名空间qfusion-admin
Redis实例redis-2ffca4ed
外部访问地址.149:8370

2.2 Redis 组件状态

组件副本数状态
Redis Server6 (3分片 × 2)✅ Running
Predixy 代理2✅ Running
Slowlog Collector1✅ Running

2.3 Predixy 配置演变

阶段WorkerThreadsCPU LimitMemory Limit
初始配置11000m2Gi
优化后41000m2Gi

三、测试阶段总结

3.1 测试时间线

┌─────────────────────────────────────────────────────────────────┐ │ 测试时间线 │ ├─────────────────────────────────────────────────────────────────┤ │ 2026-01-16 15:00 初始性能测试 (WorkerThreads=1) │ │ 2026-01-16 16:00 并发延迟深度测试 │ │ 2026-01-16 17:00 扩容后测试 (所有Pods Running) │ │ 2026-01-19 09:50 WorkerThreads优化测试 (1→4) │ └─────────────────────────────────────────────────────────────────┘

3.2 各阶段关键指标

阶段峰值QPS100并发P991000并发QPS说明
初始测试29,76240.8ms23,753部分Pod Pending
扩容后32,34246.1ms24,851所有Pods Running
WorkerThreads=455,4327.7ms54,377优化后

3.3 性能提升总览

QPS 提升趋势 60K | ┌───────── | ┌─┘ 50K | ┌─┘ | ┌─┘ 40K | ┌─┘ | ┌─┘ 30K | ┌────────────────────┤ | │ ┌─┘ 20K | │ ┌─┘ └──┼─────────────────┼──────────────> 阶段 初始 扩容后 WorkerThreads=4 (WT=1) (WT=1) (WT=4)

四、详细性能数据

4.1 初始测试 (WorkerThreads=1, 部分Pod Pending)

并发SET QPSSET P50SET P99GET QPSGET P50GET P99
5024,6550.71ms45.0ms27,6700.66ms39.4ms
10029,3081.26ms40.8ms28,7031.21ms46.8ms
20029,6032.46ms47.1ms28,7032.30ms49.3ms
30028,7853.60ms51.2ms28,3133.34ms53.1ms
40026,0285.04ms55.6ms28,0904.73ms56.3ms
50027,0566.26ms60.5ms26,1516.65ms60.3ms
60026,6528.02ms61.7ms---
80025,25311.86ms66.7ms---
100023,75314.58ms71.0ms---
125024,53419.15ms77.4ms---
150023,29926.54ms87.8ms---
175024,27261.06ms90.9ms---
200023,39763.23ms95.1ms---
250022,99970.34ms95.4ms---
300023,50780.64ms168.8ms---
350022,62489.54ms198.8ms---
400023,85593.12ms191.1ms---

峰值QPS: 29,762
最佳P50: 0.66ms
最佳P99: 39.4ms

4.2 扩容后测试 (WorkerThreads=1, 所有Pods Running)

并发SET QPSSET P50SET P95SET P99GET QPSGET P50GET P95GET P99
5028,1060.73ms1.34ms38.3ms28,8850.66ms1.22ms41.7ms
10031,3481.17ms2.34ms46.1ms32,3421.15ms2.34ms41.8ms
20028,5392.51ms29.92ms49.9ms28,1532.37ms16.15ms49.3ms
30027,9643.69ms43.97ms54.9ms28,9353.37ms47.01ms55.4ms
50027,5036.43ms52.19ms57.0ms26,7096.22ms53.25ms58.9ms
60026,8678.22ms56.58ms60.8ms27,8097.70ms57.06ms61.4ms
80025,78611.50ms64.80ms71.9ms25,10011.46ms64.35ms70.3ms
100024,85116.45ms69.44ms76.6ms24,92515.05ms65.92ms74.4ms
125025,81319.12ms71.94ms75.9ms26,30219.07ms70.72ms79.7ms
150024,26025.95ms81.02ms90.6ms24,06224.70ms77.25ms83.3ms
175023,41961.82ms90.62ms96.6ms24,08538.53ms83.52ms88.1ms
200024,28472.00ms88.70ms101.4ms23,98164.77ms91.58ms102.7ms
225023,60773.09ms91.14ms96.7ms25,49770.40ms88.26ms106.4ms
250023,13776.22ms93.31ms104.9ms23,76472.00ms94.72ms108.1ms
275024,01576.48ms103.42ms107.8ms25,36877.12ms101.95ms105.8ms
300023,65285.06ms111.42ms168.8ms23,92384.22ms106.05ms114.1ms
350025,38184.99ms180.48ms188.5ms24,13184.67ms111.30ms173.2ms
400023,41994.46ms114.82ms190.3ms24,09694.02ms193.79ms201.2ms
500023,730106.94ms187.52ms205.3ms23,202106.94ms173.18ms191.9ms

峰值QPS: 32,342
最佳P50: 0.66ms
最佳P99: 38.3ms

4.3 WorkerThreads优化后 (WorkerThreads=4)

并发SET QPSSET P50SET P95SET P99GET QPSGET P50GET P95GET P99
5051,5730.671.142.0149,0440.671.152.23
10050,3521.252.213.2651,7871.151.943.86
20052,6322.203.765.4253,1352.113.986.77
30053,6773.185.908.1452,5213.187.2113.54
40052,3834.358.5411.1452,5764.309.2513.25
50051,7875.6212.1618.4653,3335.3411.8615.92
60053,2206.5812.9315.7555,4326.3914.1720.48
80053,1639.4018.8022.5354,3488.8718.0222.58
100054,37711.1123.2229.5253,16311.3422.2929.68
125049,65212.2325.57221.8245,00513.5426.11221.18
150047,87014.0529.60231.9446,77314.1031.66228.74
175046,81615.2165.31235.1448,82814.28208.38237.57
200047,03716.04218.37240.1346,79515.90221.70232.83
225047,80118.16223.10242.6948,87616.21226.43235.01
250049,77620.51226.05244.3549,75116.82229.25271.62
275044,92423.30232.06256.2644,94421.15232.58247.81
300043,51627.02234.24253.9544,58324.98232.32252.03
350043,51629.31239.62260.9942,12334.05234.24254.59
400044,22840.26249.86270.3439,92039.87245.38261.89

峰值QPS: 55,432
最佳P50: 0.67ms
最佳P99: 2.01ms


五、性能优化历程

5.1 优化前后对比总表

指标初始(WT=1)扩容后(WT=1)WT=4优化最终提升
峰值 QPS29,76232,342 (+8.6%)55,432 (+71%)+86%
100并发 QPS29,30831,348 (+7%)50,352 (+61%)+72%
100并发 P9940.8ms46.1ms (+13%)3.26ms (-93%)-92%
500并发 QPS27,05627,503 (+2%)51,787 (+88%)+91%
1000并发 QPS23,75324,851 (+5%)54,377 (+119%)+129%
2000并发 QPS23,39724,284 (+4%)47,037 (+94%)+101%

5.2 QPS 性能曲线对比

QPS (SET) 性能曲线 60K | ●●●●●● WorkerThreads=4 | ●●●●●●●●●●●●●●● 50K | ●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●● 40K | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 30K | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 20K |●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● +--------------------------------------------------------------> 并发 0 500 1000 1500 2000 2500 3000 3500 4000 ─────────── 初始/扩容后 (WT=1) ──── ──── WT=4 ────────

5.3 P99 延迟对比

P99 延迟 (SET, ms) 250 | ●●● WT=1 (高并发) | ●●●●●●●●● 200 | ●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●● 150 | ●●●●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 100 | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 50 | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● | ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● +--------------------------------------------------------------> 并发 0 500 1000 1500 2000 2500 3000 3500 4000 ─────────── WT=1 ──── ──── WT=4 (低延迟) ────────

六、瓶颈分析

6.1 初始瓶颈分析

WorkerThreads=1 时的瓶颈:

  1. 单线程处理限制

    • Predixy 使用单线程处理所有客户端连接
    • 无法充分利用多核 CPU
    • 高并发时请求排队严重
  2. CPU 利用率低

    • 单线程只能使用一个 CPU 核心
    • CPU Limit 1000m 无法被有效利用
  3. 延迟飙升

    • 高并发时 P99 延迟从几十毫秒飙升到 200ms+
    • 请求排队导致尾部延迟恶化

6.2 优化效果分析

WorkerThreads=4 的改善:

方面改善效果
并发处理能力4个线程并发处理,QPS 提升 70%+
CPU 利用率多核 CPU 得到有效利用
延迟稳定性P99 延迟从 46ms 降至 3ms (100并发)
高并发性能1000并发 QPS 提升 119%

6.3 残留瓶颈

即使 WorkerThreads=4,仍存在以下瓶颈:

  1. 高并发延迟波动

    • 1250+ 并发时 P99 延迟上升到 200ms+
    • 可能是 Redis Server 端瓶颈
  2. CPU 限制

    • CPU Limit 仍然是 1000m
    • 增加 CPU 可以进一步提升性能

七、最终优化建议

7.1 已完成优化 ✅

优化项优化前优化后效果
WorkerThreads14QPS +71%
Redis Pods部分Pending全部Running可用性提升

7.2 推荐进一步优化

优化项当前值建议值预期效果优先级
WorkerThreads48QPS +30-50%P0
CPU Limit1000m2000m支持更高并发P0
Predixy 副本24QPS +100%P1
连接池优化默认调优降低延迟P2

7.3 实施命令

优化1: WorkerThreads 4 → 8
kubectl edit configmap redis-2ffca4ed-predixy-conf -n qfusion-admin# 修改: WorkerThreads 4 → WorkerThreads 8
优化2: 增加 CPU 限制
kubectl edit qfr redis-2ffca4ed -n qfusion-admin# 修改 predixy.resources.limits.cpu: "1" → "2"# 修改 predixy.resources.requests.cpu: "500m" → "1000m"
优化3: 扩容 Predixy 副本
kubectl scale statefulset redis-2ffca4ed-predixy -n qfusion-admin --replicas=4

7.4 预期最终性能

如果执行所有推荐优化,预期最终性能:

指标当前 (WT=4)预期 (WT=8+CPU2C+4副本)提升
峰值 QPS55,000150,000++170%
2000并发 P99240ms<50ms-80%
容量中等大规模适合生产

八、附录

8.1 测试脚本

所有测试脚本位于:/bpx/databases/redis/

  • run_optimized_full_test.sh- WorkerThreads=4 完整测试
  • worker_threads_optimization_test.sh- 对比测试脚本
  • post_scale_pressure_test.sh- 扩容后压测脚本

8.2 测试数据

  • /bpx/databases/redis/detailed_concurrency_results/- 初始详细测试数据
  • /bpx/databases/redis/post_scale_results/- 扩容后测试数据
  • /bpx/databases/redis/worker_threads_optimized_results/- WorkerThreads=4 数据

8.3 相关报告

  • redis-2ffca4ed-predixy-performance-report.md- Predixy性能报告
  • redis-2ffca4ed-concurrency-latency-report.md- 并发延迟报告
  • redis-2ffca4ed-cpu-bottleneck-analysis.md- CPU瓶颈分析
  • redis-2ffca4ed-performance-comparison-report.md- 扩容对比报告
  • redis-2ffca4ed-worker-threads-optimization-report.md- WorkerThreads优化报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1184703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口防刷处理,这样实现更优雅!

前言本文为描述通过Interceptor以及Redis实现接口访问防刷Demo这里会通过逐步找问题&#xff0c;逐步去完善的形式展示原理通过ip地址uri拼接用以作为访问者访问接口区分通过在Interceptor中拦截请求&#xff0c;从Redis中统计用户访问接口次数从而达到接口防刷目的如下图所示工…

安克创新与飞书联合发布“安克 AI 录音豆” 手指可握仅重 10 克

2026 年 1 月 19 日&#xff0c;安克创新与飞书联合发布了最新 AI 硬件——安克 AI 录音豆&#xff0c;飞书提供了该产品的软件 AI 适配与服务。这款产品以极轻的"磁吸纽扣”形态实现无感随身佩戴&#xff0c;基于飞书 AI 能力&#xff0c;支持声纹识别、实时转写与翻译、…

深入探讨大数据领域数据工程的发展趋势

好的&#xff0c;请看这篇关于大数据领域数据工程发展趋势的深度技术博客。数据工程的未来图景&#xff1a;从ETL到智能数据网格的演进之路 引言&#xff1a;我们正站在数据洪流的十字路口 想象一下&#xff0c;你是一家大型电商公司的首席数据官。每天&#xff0c;你的系统需要…

【技术收藏】风控系统的革命:大模型如何让审核员和初级算法工程师失业?

文章分享了风控系统中使用大模型替代人工审核的经验&#xff0c;发现大模型能在100-200ms内高效完成风险文本标注&#xff0c;通过优化prompt即可解决问题&#xff0c;极大简化了原有流程。这种"发现问题->修改prompt->上线"的模式使审核员和初级算法工程师面临…

自己写一个分布式定时任务框架+负载均衡+OpenAPI异步调用!

项目背景目前的定时任务框架已经很成熟&#xff0c;从QuartZ到xxl-job&#xff0c;再到近几年出现的PowerJob&#xff0c;既然有这么多的好的实现&#xff0c;为什么还是选择重写一个定时任务框架呢&#xff1f;开发中遇到这样的场景&#xff0c;业务层面需要频繁的创建修改定时…

(TETCI 2024) 从 U-Net 到 Transformer:即插即用注意力模块解析

小伙伴们好&#xff0c;我是小嬛。专注于人工智能、计算机视觉领域相关分享研究。【目标检测、图像分类、图像分割、目标跟踪等项目都可做&#xff0c;相关领域论文辅导也可以找我&#xff1b;需要的可联系&#xff08;备注来意&#xff09;】-------正文开始--------论文题目&…

如何加快 SQL 查询速度的同时保持 SQL 的简洁性?

在本文中&#xff0c;我们将讨论如何提高SQL查询速度的同时&#xff0c;还能保持SQL语句的简洁。在进入主题之前&#xff0c;我们先了解一下查询的实际处理过程&#xff1a;1. 查询处理过程查询处理过程被定义为通过一系列从数据库中提取数据的过程。这涉及将SQL语句的转换为数…

MyBatis-Flex来了!完爆MyBatis-Plus?

Mybatis-Flex 是一个优雅的 Mybatis 增强框架&#xff0c;它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库&#xff0c;其内置的 QueryWrapper^亮点 帮助我们极大的减少了 SQL 编写的工作的同时&#xff0c;减少出错的可能性。总而言…

25年的关键词:失业、工伤、外包、投资回血……

引言 「2025」 年就这么稀里糊涂的过去咯, 前不久正巧听到播客不禁感慨, 于世界而言「2025」这一年属实精彩: 年初的 Deepseek、宇树机器人爆火特朗普上台后各种折腾, 关税战一度引起全球股市暴跌, 而最后又好像啥也没发生一样后面泡泡马特爆火、小红书出圈...之后又有雷军塌…

即插即用系列 | CVPR 2025 CATANet:一种用于轻量级图像超分辨率的高效内容感知 Token 聚合网络

论文题目&#xff1a;CATANet: Efficient Content-Aware Token Aggregation for Lightweight Image Super-Resolution 论文原文 (Paper)&#xff1a;https://arxiv.org/abs/2503.06896 官方代码 (Code)&#xff1a;https://github.com/EquationWalker/CATANet GitHub 仓库链接&…

牛掰,MySQL 8.2 支持读写分离了!

MySQL InnoDB ReplicaSet启动 MySQL Router 8.2结论我们一直在等待的 MySQL 读/写分离功能 现在终于可以使用了&#xff01;在规模上&#xff0c;我们在副本之间分配读取&#xff0c;但这必须在应用程序中以某种方式进行管理&#xff1a;指向在某个地方写入并在其他地方读取。在…

【PFJSP问题】自适应双种群协同鸡群算法ADPCCSO求解置换流水车间调度问题PFSP【含Matlab源码 14995期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab武动乾坤博客之家&#x1f49e;…

洛谷 P3746 [六省联考 2017] 组合数问题

题目链接 题目求 \(\displaystyle \sum _ {i = 0} [x ^ {ik + r}] (1 + x) ^ {nk}\),定义多项式的循环卷积为两个多项式相乘后,把所有 \(x ^ i\) 的项合并到 \(x ^ {i \bmod k}\)。快速幂加速即可。 时间复杂度 \(\t…

公司弃用 Nginx,选择这款工具!

Cloudflare 公司宣布弃用 nginx&#xff0c;转用自研的新一代方向代理服务 Pingora&#xff0c;并号称比nginx更快、更高效、更安全&#xff0c;下面通过 Cloudfare 官方网站的一篇文章来了解下 Pingora 比 Nginx 强在哪里&#xff1f;简介今天&#xff0c;我们很高兴有机会在此…

【DPFSP问题】自适应双种群协同鸡群算法ADPCCSO求解分布式置换流水车间调度DPFSP【含Matlab源码 14996期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab武动乾坤博客之家&#x1f49e;…

洛谷 P3747 [六省联考 2017] 相逢是问候

题目链接 欧拉降幂最多只会迭代到第 \(k = \text O (\log p)\) 次模数就会变成 \(1\)(证明见这里)。故一个数被操作超过 \(k\) 次就会变为一个定值。 于是用线段树维护出操作还没有满 \(k\) 次的位置,每次暴力修改并…

Gemini 336L - 调试记录(Ubuntu 24.04)

按照Readme安装ROS2 SDK:https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main开启ROS2自动补全:eval "$(register-python-argcomplete ros2)" eval "$(register-python-argcomplete colcon)"…

电缆敷设施工机械-哪个品牌的电缆输送机好用

哪个品牌的电缆输送机好用&#xff1f;在电力、通信等基建工程中&#xff0c;电缆输送机的品牌选择&#xff0c;远不止于比较单一参数。这本质上是对设备背后技术可靠性、工程适配性与长期服务价值的综合考量。一个优秀的品牌&#xff0c;意味着其产品能深度融入多样化的施工场…

深入解析:从C++开始的编程生活(16)——继承

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

13.6B参数铸就“世界模型”,美团LongCat-Video搭建5分钟原生视频生成,定义AI视频新标杆

13.6B参数铸就“世界模型”,美团LongCat-Video搭建5分钟原生视频生成,定义AI视频新标杆pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…