当前位置: 首页 > news >正文

keybench:可脚本化排序键值存储性能工具,多维度测试与分析全揭秘

导航菜单

切换导航,有登录选项,还可进行外观设置。

平台

包含AI代码创作、开发者工作流、应用程序安全和探索等方面。AI代码创作有GitHub Copilot、GitHub Copilot应用、MCP注册表;开发者工作流涵盖Actions、Codespaces、Issues、代码审查;应用程序安全包括GitHub高级安全、代码安全、密钥保护;探索部分有为何选择GitHub、文档、博客、更新日志、市场等。还可查看所有功能。

解决方案

按公司规模划分有企业版、中小型团队版、初创公司版、非营利组织版;按用例划分有应用现代化、DevSecOps、DevOps、CI/CD等,还可查看所有用例;按行业划分有医疗保健、金融服务、制造业、政府机构等,也可查看所有行业。还能查看所有解决方案。

资源

按主题探索有AI、软件开发、DevOps、安全等,可查看所有主题;按类型探索有客户案例、活动与网络研讨会、电子书与报告、商业洞察、GitHub技能;支持与服务包括文档、客户支持、社区论坛、信任中心、合作伙伴。还可查看所有资源。

开源

社区有GitHub赞助;项目包括安全实验室、维护者社区、加速器、GitHub之星、存档项目;仓库有主题、热门趋势、集合。

企业版

企业解决方案是企业平台,由AI驱动;可用附加组件有GitHub高级安全、Copilot for Business、高级支持。

定价

可查看定价。

搜索

可搜索代码、仓库、用户、问题、拉取请求等,还有搜索语法提示。

提供反馈

可提供反馈,包含电子邮件地址以便联系。

保存的搜索

使用保存的搜索可更快速筛选结果,若要查看所有可用限定符,可参阅文档。

登录与注册

有登录和注册选项,还有外观设置,以及登录状态提醒。

仓库信息

有guycipher/keybench仓库,包含通知、分叉、加星等操作,还有代码、问题、拉取请求、操作、项目、安全与质量、洞察等导航选项。

keybench介绍

keybench是一款可脚本化、可扩展的排序键值存储性能工具。可使用Lua编写工作负载,在一个或多个存储引擎上运行,对操作计时,报告吞吐量和延迟,相同脚本可在各引擎上无改动运行,便于公平比较。

测量指标

keybench会报告两种速率和一个延迟分布。wu/s是每秒执行的工作负载单位数,一个单位是对 `run()` 函数的一次调用;ops/s是每秒执行的基本操作数,一个基本操作可以是一次 `put`、`get`、`del`、`range` 或 `scan` 调用,或者是 `mget`、`mput` 或 `mdel` 中处理的一个键。当每个工作负载单位只包含一个基本操作时,两种速率相等;包含多个基本操作时,报告中会分别显示。延迟以分布形式记录,每种操作都有自己的直方图,报告中会给出每个操作的p50、p99、p99.9和最大值。

工作原理

keybench由五个可替换部分组成。引擎负责并发处理,创建工作线程,分配操作预算,测试框架不锁引擎调用;工作负载是一个Lua表,包含名称、`load` 函数和 `run` 函数,`load` 函数用于填充存储,`run` 函数是被测量单位;存储是统一接口,脚本通过全局 `kv` 表调用存储操作,keybench会计时并统计基本操作数;后端是自注册插件,每个引擎在 `backends/` 目录下,可通过命令行参数选择;报告器是输出接收器,一次运行会将信息广播给指定报告器,可同时运行多个报告器。

构建

keybench自带Lua库,默认构建只需C编译器和pthreads,使用 `make` 命令生成 `./keybench`,包含内存中的跳表引擎。编译持久化引擎可指定引擎名称,还可指定分配器、引擎库和头文件位置等。若使用系统Lua,可使用 `make LUA_SYS=1` 命令。还有其他目标,如 `make run`、`make all-wl`、`make clean`。

运行

最小运行命令只需指定一个工作负载文件,默认在一个线程上对跳表引擎执行200000个工作负载单位,并输出控制台报告,报告包含系统探测信息、构建探测信息、操作延迟分布、命中率和吞吐量等。

实时进度

运行过程中,keybench每秒会向stderr输出一行状态信息,限时运行会显示已用时间、预算时间和当前速率,限操作数运行会显示已用时间、速率和操作预算完成百分比,状态信息只在stderr是终端时输出。

选择工作参数

可通过 `--ops N` 指定总操作单位数,`--secs S` 指定运行时间,`--users N` 指定用户数量,`--items N` 指定目录大小,`--seed N` 指定随机数生成器基础种子。`--ops` 和 `--secs` 只能选一个,`--users`、`--items` 和 `--seed` 始终适用。

扫描和比较

在参数中使用逗号分隔的列表可将一次运行扩展为网格,keybench会运行网格中的每个点,并输出汇总表。可通过 `--backend L` 指定引擎,`--threads L` 指定线程数,`--batch L` 指定批量大小,`--repeat N` 指定每个点运行次数。指定多个文件可按顺序运行,每个文件在新存储中独立运行。

报告器和实时时间线

可通过 `--report S` 指定输出接收器列表,`--timeline S` 指定采样间隔,`--report-dir D` 创建带时间戳的目录并打包结果文件。接收器名称包括 `console`、`tsv` 和 `timeline`,不同接收器有不同输出格式。

探测

探测用于记录基准测试上下文信息,系统探测报告主机、CPU、内存等信息,构建探测报告keybench版本、编译器和分配器。可通过 `--probe L` 指定探测列表。

配置文件和重放

一次运行可保存为配置文件并精确重放,配置文件格式为纯INI,`[bench]` 部分设置运行参数,引擎部分调整引擎。可通过 `--config F` 加载运行参数和引擎调整信息,`--save-config F` 保存重放配置。

示例

执行模型是一次运行是一个网格,由引擎列表、线程列表和批量大小列表组合构成,keybench为每个工作负载文件运行一次该网格,网格中每个单元格测量 `--repeat` 次并取中位数。有优先级规则,`--config` 文件提供默认值,命令行标志会覆盖它,`--report-dir` 会接管报告功能。持久化引擎需要 `--data-dir`,跳表引擎不需要。还给出了多个示例展示不同的运行方式。

绘图

`scripts/plot.py` 可将结果目录中的TSV文件渲染为图表,包括吞吐量柱状图、可扩展性曲线等,系统时间线图表包含系统探测记录的所有指标,引擎内部状态绘制在单独图表中,引擎颜色来自 `BACKENDPALETTE` 文件,默认图表保存为PNG格式。

http://www.rkmt.cn/news/1478805.html

相关文章:

  • 动手复现Hinton经典:用PyTorch跑通1986年的反向传播论文代码
  • 用户停留时长×跳出率×跨端转化率×语义聚类得分×时效衰减因子,CSDN AI选题到底在算什么?
  • 新手必看:哔哩下载姬downkyi如何让你轻松收藏B站高清视频
  • 深度理解 Python 装饰器:从原理到实战,彻底掌握高阶语法
  • 新手必看:用C++ switch和if-else两种方法搞定《信息学奥赛一本通》2058计算器题
  • GT20L16S1Y字库芯片的‘竖置横排’是啥?一篇讲透点阵数据与LCD屏幕的匹配原理
  • 京东自动化抢购脚本:如何用Python实现毫秒级精准秒杀
  • 从零开始搞懂SoC:芯片里的“五脏六腑”是如何协同工作的?
  • 控制与强化学习 可控性与动态规划:从LQR到强化学习的统一视角
  • Windows视频播放终极解决方案:LAV Filters完全指南
  • Vivado 18.3 安装避坑全记录:从下载到干掉烦人的Xilinx信息中心
  • 六盘水黄金白银回收实地甄选TOP5名录 - 余生黄金回收
  • 如何解锁NVIDIA显卡隐藏潜能:5分钟掌握Profile Inspector终极指南
  • 2026年6月链运机厂家推荐,NE板链提升机/输送机/熟料链斗输送机/自动输送线/矿用皮带机,链运机供应商实力 - 品牌推荐师
  • 2026年|英文论文AI率怎么降?亲测3个手改技巧与降AIGC工具,从95%直降至3% - 降AI实验室
  • chromatic注入失败终极指南:快速解决Chromium/V8修改器常见问题
  • 不只是编译:深入EDK2构建系统,从BaseTools到OVMF的现代构建链解析
  • 别再傻傻用VMware Workstation了!手把手教你用ESXi 7.0在旧电脑上搭建家庭服务器(附静态IP和SSH配置)
  • 瑞德克斯信息服务平台入口实用吗?
  • 《电脑显示器哪家好:排名前五 专业深度测评》 - 服务品牌热点
  • 珠宝改款定制镶嵌哪家好:排名前五测评 - 服务品牌热点
  • CORBA调试工具集:IOR解析、命名服务绑定与Notify推送测试一体化脚本包
  • 二手手机回收价急涨暴跌,二手手机怎么了?
  • 告别空白页!React项目打包APK实战:HBuilderX配置清单与Mumu模拟器调试指南
  • 2026年免混凝土楼承板实测评测:直立锁边铝镁锰板、铝镁锰直立锁边板、镀铝锌彩钢板、闭口楼承板、470型彩钢板选择指南 - 优质品牌商家
  • 茂名卖金技巧本地靠谱回收余生黄金回收上门不踩坑 - 余生黄金回收
  • 逆向工程工具:三层架构突破Wallpaper Engine封闭格式的技术解析
  • 本地PDF问答系统:FAISS+Groq+FastAPI实战搭建
  • Matlab HSV空间双边滤波去雾工具包(含测试图+源码+效果对比)
  • 2026年杭州中级经济师众智商学院课程咨询入口:官网、400、冯老师、资料和试听课 - 众智商学院职业教育