Kaarel Moppel:v15及以上版本的最佳pg_basebackup压缩设置

Kaarel Moppel:v15及以上版本的最佳pg_basebackup压缩设置

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

在最新的测试中,对比了lz4、zstd等pg_dump压缩选项的性能,发现新算法在较低级别下提供了最佳性能,尤其是zstd。测试了pg_basebackup工具的最新(v15+)压缩选项,结果显示,最低压缩级别的lz4在7个数据集中表现最好。总体而言,lz4和zstd在二进制数据的压缩中表现相当,它们的最低压缩级别在速度和输出大小之间提供了最佳平衡。高压缩级别并没有提供太多优势,只适用于长期存档。

🔎

延伸解读

测试环境与数据集的代表性

本次测试基于107GB真实数据集,涵盖IMDB、小鼠基因组等7个不同规模与类型的数据库,硬件为4核Xeon E3、16GB内存和NVMe SSD。这为评估pg_basebackup压缩性能提供了较有代表性的基准,但需注意测试仅使用单核并行,且除最大数据集外均预热缓存,实际生产环境中的多核与网络条件可能影响结果。

压缩级别选择的权衡

测试表明,lz4和zstd的最低压缩级别(lz4:1、zstd:1)在速度与输出大小间提供了最佳平衡。lz4:1压缩速度最快,但输出大小比最小输出高约50%;zstd:13压缩率最高,但时间成本约为3倍。高压缩级别并未带来显著优势,仅适用于长期归档等对时间不敏感的场景。

与文本压缩测试的异同

与之前pg_dump文本压缩测试相比,二进制数据压缩的优胜者略有不同:文本测试中zstd:1表现最佳,而本次二进制测试中lz4:1略胜一筹。但总体而言,lz4和zstd在二进制数据压缩中表现相当,最低级别均是最佳选择。此外,二进制快照比文本快照快2-3倍,但输出大小也相应增大。

使用高压缩级别的风险

测试中,zstd最高级别(13)曾导致系统无响应且管道中断,虽仅出现一次,但提示在高负载或关键实例上使用高压缩级别可能存在稳定性风险。建议在生产环境中谨慎评估,或优先选择更低级别以确保可靠性。

❓

Q&A

在pg_basebackup中,哪种压缩方法在测试中表现最好?

在测试中,最低压缩级别的lz4表现最好。

lz4和zstd在压缩性能上有什么区别?

lz4在速度上表现更快,但输出大小约高出50%;而zstd在压缩率上表现最佳,但时间成本约为3倍。

高压缩级别的使用场景是什么?

高压缩级别适用于长期存档,但在速度和输出大小上并未提供显著优势。

pg_basebackup的快照在现代环境中还有用吗?

是的,pg_basebackup的快照在自管理安装中仍然相关,尤其是在网络带宽有限的情况下。

测试中使用了什么样的硬件配置?

测试使用了4核Xeon E3、16GB RAM和NVMe SSD的硬件配置。

在压缩速度和输出大小之间,哪种方法提供了最佳平衡?

lz4和zstd在最低压缩级别下提供了速度和输出大小之间的最佳平衡。

🏷️

标签

➡️

继续阅读