Skip to main content
本手册把 ycsb-endpoint 的 config-connect 接缝变成一次云产品评测:用公认的 YCSB 工具测你运营的托管 Redis 兼容服务的吞吐 + 尾延迟,并叠加性价比复合数。
连接链路(target → adapter → suite → evaluator)由本仓库 CI(单测 + mock)覆盖。 下面的 live 步骤需要你自己的托管服务和上游 YCSB 工具——此路径下 clousight-bench 绝不代你开通服务,不会产生意外云支出。

0. 你需要

  • 一个驱动机可达的托管 Redis 兼容实例(阿里云 Tair/Redis、AWS ElastiCache 等, VPC/白名单已配置)。
  • YCSB 启动器(Java ≥ 11):YCSB releases —— ycsb 放进 PATH 或设置 YCSB_HOME。
  • pip install clousight-bench。

1. 驱动机放哪(必读)

数字包含驱动机与服务之间的网络。要可比,就把驱动机放在同 region/同 VPC (一台 ECS/EC2),不要用笔记本走公网。记录你在哪跑的——环境指纹本来就会阻止 跨机器数字混池,但对未来的自己好一点。

2. 连接档案

从已提交的示例出发(examples/cloud-connect/aliyun-redis.yaml / aws-elasticache.yaml):

3. 先 preflight,再跑

csbench doctor 现在做真实探测:Redis 协议 PING 探测(绝不发送密码;-NOAUTH 也证明服务存活)+ YCSB 启动器与 Java ≥ 11 检查。地址写错、白名单没开、工具缺失或版本过旧 都会在这里带修复提示暴露——而不是变成运行中的堆栈。同样的检查也在 csbench run 的 PREFLIGHT 阶段把关。
产出 ycsb.throughput_ops、ycsb.read_p99_us、ycsb.update_p99_us 等——来自 原样上游工具的 environmental 测量。只有基准指纹和环境指纹都相同的运行才会混池。

4. 性价比

通过定价 feed 把实例价格映射到头牌指标(机制见 TPC-H price/QphH):
CLOUSIGHT_PRICING_DATA=feed.json csbench run … 会在 extensions.pricing.price_performance[] 里加上 $ / (ops/sec)——unaudited, 来自你自己的报价输入,永远改变不了判定。

5. 扰动下的可靠性(R5)

驱动侧网络路径属于 harness,可以诚实地扰动——绝不对托管服务做服务端故障注入:
测量阶段经本地 TCP 中继连向你的端点;at_s 秒时 harness 切断全部活动连接 (reset)或挂起转发(stall)。扰动要求 redis binding + 目标端点——其他 binding 会大声失败,绝不在打了扰动标签的数据集下跑一场干净基准。落进记录的 全是证据:ycsb.error_rate / ycsb.ops_failed 来自 YCSB 自己的 Return= 计数, ycsb.completed_under_disruption 仅在扰动确实触发时出现,轨迹在实测触发时刻 带 disruption span(stall 为闸门强制的窗口,截断到运行结束)。不同扰动 计划=不同基准(折入 dataset digest)。

6. 诚实注意事项

  • YCSB 的 Redis binding 面向单节点;cluster 模式服务需要上游的 cluster 客户端 开关——跨服务对比前先验证。
  • 托管服务的目录价会变;在 feed 里记录 source 和日期。
  • 只比较同 workload、同 record/operation 数、同 region 局部性的数字——前两者 指纹强制,第三条靠你自己。