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,可以诚实地扰动——绝不对托管服务做服务端故障注入: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 局部性的数字——前两者 指纹强制,第三条靠你自己。
