Apache Flink 微基准测试指南

Apache Flink 微基准测试指南

flink-benchmarks Benchmarks for Apache Flink flink-benchmarks 项目地址: https://gitcode.com/gh_mirrors/fli/flink-benchmarks

本文档旨在提供详细的指导,帮助开发者和研究人员深入了解并有效使用 Apache Flink 的微基准测试套件(flink-benchmarks)。本指南涵盖安装步骤、项目使用方法、API调用详情以及配置说明。

安装指南

要开始使用 flink-benchmarks,首先需要确保您的环境满足以下要求:

  1. Java 环境: 确保您安装了 JDK 11 或更高版本。
  2. Git: 用于克隆项目源码。
  3. Maven: 项目管理工具,版本推荐 3.6 及以上。

通过 Git 克隆项目到本地:

git clone https://github.com/apache/flink-benchmarks.git

项目使用说明

默认基准测试套件执行

默认的全面基准测试可以通过以下命令运行,该过程大约需要一小时:

cd flink-benchmarks
mvn clean install exec:exec

状态后端特定基准测试

如果您对特定的状态后端性能感兴趣,例如 RocksDB,可以使用以下命令进行测试:

mvn clean package exec:exec \
-Dbenchmarks="org.apache.flink.state.benchmark.*"

单个基准测试执行

有三种方式执行单个测试案例:

  1. IDE(如 IntelliJ IDEA): 使用插件直接运行主函数,并记得在项目设置中指定正确的 flink.version
  2. 命令行
    mvn -Dflink.version=<FLINK_VERSION> clean package exec:exec \
    -Dbenchmarks="<benchmark_class>"
    
    示例:mvn -Dflink.version=1.12-SNAPSHOT clean package exec:exec -Dbenchmarks="YourBenchmarkClass"
  3. 直接运行 Uber JAR:
    java -jar target/benchmarks.jar -rf csv "<benchmark_class>"
    
    若使用 Java 17,可能需要添加额外参数:
    java --add-opens java.base/java.util=ALL-UNNAMED -jar target/benchmarks.jar -rf csv "<benchmark_class>"
    

快速测试模式

对于测试目的,仅运行一次(单次迭代)可以使用:

mvn test -P test

API 使用文档

基准测试类定义的主要方法利用了 JMH(Java Microbenchmark Harness),允许通过命令行参数自定义运行时行为。比如通过 -lp 显示所有可选参数组合,或者 -p 参数来覆盖默认配置。

配置与参数

  • 基准配置文件: 项目包含 benchmark-conf.yaml 用于调整基本设置,如修改状态数据目录。
  • 参数传递: 从命令行可以直接传递参数以调整基准测试的行为,例如指定不同的状态后端类型 -p "backendType=ROCKSDB"

Flame Graphs生成

为了生成性能调优所需的火焰图,需启用异步分析器(async profiler):

java -jar target/benchmarks.jar -prof async:libPath=<PATH_TO_LIBASYNC_PROFILER>;<OUTPUT_OPTION> "<benchmark_class>"

进阶配置与注意事项

文中详细描述了关于OpenSSL依赖的配置、代码结构的最佳实践以及命名约定,强调避免性能优化过早、保证测试环境的纯净和重复验证结果的重要性。

通过遵循上述指南,您可以有效地利用 flink-benchmarks 来评估和改进 Flink 应用程序的性能表现。

flink-benchmarks Benchmarks for Apache Flink flink-benchmarks 项目地址: https://gitcode.com/gh_mirrors/fli/flink-benchmarks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任婉迅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值