重新编译tiflash源码,使用tpch测试,性能与原生tiflash进程差异很大

【 TiDB 使用环境】CentOS Stream release 8/Linux 5.18.19
【 TiDB 版本】v6.5.0
【复现路径】
基于tiflash v6.5.0源码编译,替换tiup cluster deploy 后生成的原生tiflash二进制文件,使用tiup bench tpch prepare命令导入100G数据,然后使用tpch的sql语句进行测试。
【遇到的问题:问题现象及影响】
重新编译后的tiflash进程性能表现远不如原生的,抓取火焰图以及perf top数据发现,两者程序处理流程有很大的不同,所以在编译tiflash源码的过程中,需要指定打开或关闭某些参数么,不然为什么会有这么大的性能差异。
【资源配置】
tidb集群部署
tidb.yaml (1.2 KB)
【附件】
tiflash 编译参数:cmake … -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER=/usr/bin/clang-15 -DCMAKE_CXX_COMPILER=/usr/bin/clang+±15
重现编译后进程相关测试数据:
tpch sql1 query time:14.20s
perf top结果:


火焰图:
perf-lz4-new

原生进程的测试数据:
tpch sql1 query time:3.57s
perf top 结果:


火焰图:
perf-lz4-original

为什么要重新编译?原生的 tiflash 不能满足需求吗?

我最初的目的是想在tiflash里引入其他压缩算法,看看是否对tiflash性能有所提升,然后在测试过程中就发现了这个问题,都是使用LZ4压缩算法,只是重新编译一次tifash,性能就有如此大的差异,那么我在后续验证新的压缩算法对性能是否有提升的时候,会因为这个因素影响,无法得出正确的结果。

查下编译的时候,是不是还有很多优化参数… 可以帮助提升最终的性能

压缩算法。。。借楼,问个问题,tidb里是不是没有像mysql archive引擎一样,能压缩一些归档表?

你用了 debug 模式编译。做性能测试或者生产,请参考这个脚本:
https://github.com/pingcap/tiflash/blob/master/release-centos7-llvm/scripts/build-tiflash-release.sh

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。