项 | 值 |
压测工具 | sysbench |
负载类型 | 随机 INSERT(写入为主) |
并发线程数 | 256 |
表数量 | 64 |
单轮持续时间 | 12小时(长稳) |
索引 | Key 大小 | Value 大小 |
主键索引(PK) | 8 B | 9,405 B |
二级索引 | 26 B | 4 B |
min_blob_size(1KB)阈值,会全部被分离到 Blob 文件,能充分体现 KV 分离对写放大的缓解效果。方案 | 平均 QPS | 性能曲线特征 |
不开启 KV 分离 | 18,573 | 受 pending_bytes 缓写控制,宏观下降明显;扩 Level 时停写,微观波动大 |
KV 分离 + 强制 GC | 21,170 ⬆️ 约14% | 宏观下降轻微(Blob 数控制良好);微观受 L0 堆积影响波动较大 |
KV 分离 + 动态合并小 Blob | 20,918 ⬆️ 约13% | 微观最平稳;需配合调大 level0_file_num_compaction_trigger 以控制 Blob 文件数 |
pending_bytes 累积;KV 分离下的下降来自 Blob 文件数累积,前者随数据量加速下降,后者上限可调。方案 | 平均 QPS | 相对 baseline |
不开启 KV 分离 | 4,213 | — |
KV 分离(动态合并 Blob,受控) | 7,087 | ⬆️ +68% |
KV 分离 + 高压期关闭合并 Blob | 9,177 | ⬆️ +118% |
compression_per_level = LZ4:LZ4:ZSTD:...、max_bytes_for_level_base = 1 GB方案 | 平均 QPS | 相对 baseline |
不开启 KV 分离 | 10,920 | — |
KV 分离(动态合并 Blob) | 11,829 | ⬆️ +8% |
KV 分离 + 高压期关闭合并 Blob | 15,702 | ⬆️ +44% |
维度 | 关闭 KV 分离 | 开启 KV 分离 |
吞吐天花板 | 受 Compaction 写放大限制 | 显著提升(I/O 瓶颈下尤甚) |
缓写(Stall) | 频繁,随数据增长加剧 | 几乎消除 |
微观抖动 | 大(pending_bytes 周期变化) | 小(合并 Blob 周期影响) |
宏观下降趋势 | 持续下降 | 趋于平稳 |
磁盘写量 | 高(大 Value 反复写) | 低(大 Value 一次写入) |
调参复杂度 | 低 | 中(需平衡 GC、合并、L0阈值) |
enable_blob_files + min_blob_size=1024 + enable_blob_garbage_collection(参见 快速开始)文档反馈