
Fluent Bit 仓库内嵌 Zstandard 1.5.7 命令行工具完整指南zstd.1 手册全解与源码级实践【免费下载链接】fluent-bitFast and Lightweight Logs, Metrics and Traces processor for Linux, BSD, OSX and Windows项目地址: https://gitcode.com/GitHub_Trending/fl/fluent-bit导读本文以 Fluent Bit 仓库内嵌的 Zstandardzstd1.5.7 官方手册 programs/zstd.1.md 为绝对主体系统讲解zstd/zstdmt/unzstd/zstdcat命令行工具的全部操作模式、压缩级别体系、高级参数、字典训练与基准测试功能并对照仓库内 lib/zstd-1.5.7 源码树与 src/flb_zstd.c、cmake/zstd.cmake 等实现说明 zstd 如何作为 Fluent Bit 的压缩/解压缩能力被真实落地。读完本文你将能够独立完成 zstd 的压缩、解压、校验、字典训练、基准测试与调优并理解 Fluent Bit 各插件HTTP 输出、Forward 输入、AWS 服务等中 zstd 压缩的底层调用链。一、zstd 是什么快速无损压缩算法与工具zstd是一种快速的无损压缩算法及数据压缩工具命令行语法与gzip(1)、xz(1) 类似。它基于LZ77家族并在其后叠加了 FSEFinite State Entropy与 huff0 两个熵编码阶段实现了压缩速度与压缩比的双重可配置性快速模式可达到每核心 200 MB/s 以上的压缩吞吐强压缩模式能获得出色的压缩比解压速度极快每核心可达 500 MB/s 以上且在不同压缩设置下基本保持稳定。以上性能表述来自官方手册原文实际数值与机器、数据内容强相关应以实测为准。在 Fluent Bit 仓库中zstd 以 lib/zstd-1.5.7 子模块形式随仓库分发头文件 lib/zstd-1.5.7/lib/zstd.h 中定义的版本号为ZSTD_VERSION_MAJOR1、ZSTD_VERSION_MINOR5、ZSTD_VERSION_RELEASE7见 lib/zstd-1.5.7/lib/zstd.h#L112-L114。与 gzip 的几个关键差异zstd 命令行整体风格接近 gzip但存在以下差异源文件默认保留。如需自动删除需显式使用--rm。压缩单个文件时默认显示进度通知与结果摘要可用-q关闭。命令行出错时显示简短帮助页同样可用-q关闭。不接受来自控制台的输入但当标准输入不是控制台时接受stdin。不存储输入文件的文件名与属性只保存内容本身。zstd按所选操作模式逐个处理文件。若未指定文件或文件名为-则从标准输入读取、向标准输出写出。若标准输出是终端zstd 会拒绝向其写入压缩数据并报错跳过同理若标准输入是终端zstd 也拒绝读取。输出文件命名规则除非指定--stdout或-o输出文件命名遵循压缩在源文件名后追加.zst后缀得到目标文件名解压从源文件名移除.zst后缀得到目标文件名。多文件拼接多个.zst文件可以简单地拼接concatenate在一起zstd 会把这种聚合文件当作单个.zst文件整体解压。这一特性对日志归档、流式追加写入等场景非常实用。二、SYNOPSIS四种命令形态手册给出的命令原型为zstd [OPTIONS] [-|INPUT-FILE] [-o OUTPUT-FILE]并提供三个等价别名命令命令等价形式用途zstdmtzstd -T0自动探测并使用物理 CPU 核心数进行多线程压缩unzstdzstd -d解压zstdcatzstd -dcf解压并输出到标准输出强制模式整数后缀与特殊值在绝大多数期望整数参数的位置都支持可选后缀以方便表达大数整数与后缀之间不允许有空格KiB乘以 10242^10。Ki、K、KB均视为KiB的同义词MiB乘以 1,048,5762^20。Mi、M、MB均视为MiB的同义词。例如--memory128MiB、--maxdict100KB都是合法写法。三、操作模式Operation Mode多个操作模式同时给出时以最后一个为准。选项说明-z,--compress压缩。当未指定任何操作模式、且命令名不隐含其他模式如unzstd隐含--decompress时这是默认模式-d,--decompress,--uncompress解压-t,--test校验压缩文件完整性等价于--decompress --stdout /dev/null解压数据被丢弃并做校验和检查不创建也不删除任何文件-b#使用压缩级别#对文件做基准测试见后文 BENCHMARK 章节--train FILES使用 FILES 作为训练集生成字典。训练集应包含大量小文件建议 100 个-l,--list显示 zstd 压缩文件相关信息大小、压缩比、校验和等部分字段可能不可用可加-v增强输出四、操作修饰符Operation Modifiers压缩级别与速度-#选择压缩级别#范围 [1-19]默认 3。级别越高通常压缩比越高但速度与内存开销越大。经验法则压缩速度大约每 2 级减半。每个级别内部会被映射为一组高级参数可用--show-default-cparams查看映射结果由于压缩行为高度依赖数据内容级别间并不保证平滑递增。--ultra解锁 20 级最高 22的超高压缩级别内存占用显著增加注意解压这些级别产生的文件同样需要更多内存。--fast[#]切换到超快速压缩级别。不带#时默认取 1值越大压缩越快、压缩比越低。此设置会覆盖先前设置的压缩级别反之在其后设置的压缩级别也会覆盖它。-T#,--threads#使用#个工作线程压缩默认 1。#为 0 时自动探测并使用物理 CPU 核心数线程数上限为ZSTDMT_NBWORKERS_MAX32 位环境为 6464 位环境为 256。未编译多线程支持的 zstd 忽略此修饰符。--single-threadI/O 与压缩共用单线程。由于压缩与 I/O 串行化可能略慢但内存占用显著更低适合 32 位等内存受限系统。注意它与-T1不同-T1会额外派生 1 个压缩线程与 I/O 并行最终压缩结果也与-T1略有差异。--auto-threads{physical,logical}默认 physical当通过-T0使用默认线程数时决定基于物理核还是逻辑核数量。自适应与长距离匹配--adapt[min#,max#]根据感知到的 I/O 状况动态调整压缩级别。可用-v实时观察调整过程可限定在min与max级别之间。该特性需配合多线程与--long模式使用不兼容--single-thread默认将窗口大小设为 8 MiB可用wlog修改。由于动态调整具有混沌性压缩结果不可复现。手册同时提示与多个工作线程2组合时--adapt可能卡在低速度。--long[#]启用长距离匹配#为windowLog窗口大小对数缺省为 27。这会增大窗口大小与压缩/解压双方的内存占用用于改善大距离长匹配数据的压缩比。注意若windowLog大于 27解压时必须显式传入--longwindowLog或--memorywindowSize。--max将高级参数设为最大压缩。警告非常慢且消耗大量资源不适用于 32 位模式该模式下禁用。字典与差分-D DICT使用DICT作为字典压缩或解压文件。--patch-from FILE指定文件作为 zstd 差分引擎的参考点本质上是带便捷参数选择的字典压缩要求windowSize srcSize。约束不能与-D同时使用若chainLog fileLogfileLog指覆盖整个文件所需的windowLog--long模式会被自动激活也可手动强制级别 ≤ 15 时可在--single-thread下用--patch-from以速度换取略高压缩比级别 15 用--single-thread反而会降低压缩比级别 19 下指定较大的--zstdtargetLength如 4096与较大的--zstdchainLog可在牺牲速度的情况下提升压缩比。--rsyncable周期性同步压缩状态使压缩文件更利于 rsync 增量同步。对压缩比影响可忽略但对高速场景如与多并行线程组合可能有速度影响不兼容--single-thread一般也不建议与长距离模式同用。帧头与完整性-C,--[no-]check添加基于未压缩数据计算的完整性校验默认启用。--[no-]content-size控制是否把原始文件大小写入压缩文件头部。默认--content-size写入。--no-dictID不在帧头存储字典 ID。解码器将只能依赖对字典的隐式认知无法校验字典是否正确。内存与流式输入-M#,--memory#设置内存使用上限。解压默认上限128 MiB可上下调整。此参数同时作用于与--patch-from组合时覆盖字典允许的最大尺寸128 MiB字典训练时覆盖默认 2 GiB 的样本加载上限加载至内存上限的样本其余忽略。--stream-size#声明流式输入的承诺源大小必须精确因为会被写入帧头错误值将导致报错。该信息有助于优化压缩参数对小源尤其能带来更好且可能更快的压缩。--size-hint#流式输入下zstd 需猜测源大小以优化参数小流时猜测不佳可能导致压缩比异常。此选项允许人为控制猜测精确估计压缩比最好高估略损压缩比低估可能显著劣化。--target-compressed-block-size#尝试生成约此大小的压缩块将大块拆分逼近目标对接收方能利用提前到达的不完整数据的场景低延迟尤其有用。这是宽松目标——块平均接近该尺寸个体可大可小。级别 1 下开启该特性最多使压缩速度下降约 10%级别越高速度回退越小。输入输出控制-f,--force禁用输入输出检查允许覆盖已有文件、从控制台输入、向 stdout 输出、操作链接与块设备等。解压且输出目标是 stdout 时将未识别格式原样透传。-c,--stdout写入标准输出即使是控制台保留原文件禁用--rm。-o FILE将结果保存到FILE。与-c冲突时命令行中后出现的生效。--[no-]sparse启用/禁用稀疏文件支持让含大量零字节的文件在磁盘上更小创建稀疏文件可节省磁盘并减少磁盘 I/O、加速解压。默认输出到文件时启用输出到 stdout 时禁用此设置可覆盖默认并强制 stdout 也使用稀疏模式。--[no-]pass-through启用/禁用未压缩文件的透传。解压时若启用透传未识别格式会原样从输入复制到输出。默认仅在输出目标为 stdout 且设置了-f时透传。--rm压缩/解压成功后删除源文件。输出为 stdout 时静默忽略与-o组合时触发确认提示可用-f静默因为这是破坏性操作。-k,--keep操作成功后保留源文件。这是默认行为。-r递归处理目录选中目录内及所有子目录的全部文件。可减少命令行输入也能规避 shell 展开对命令行长度的限制。--filelist FILE从FILE读取待处理文件列表格式与ls输出兼容每行一个文件。--output-dir-flat DIR输出文件统一存入DIR而非源文件所在目录。不同目录的同名文件可能冲突默认保留先出现的文件与-f组合时保留最后出现的文件。--output-dir-mirror DIR类似--output-dir-flat但会在DIR下复刻输入目录层级。含..的输入目录会被忽略绝对路径输入如/var/tmp/abc会存入output-dir/var/tmp/abc多输入冲突处理规则同--output-dir-flat。--formatFORMAT以其他格式压缩/解压。编译支持时可选zstd、gzip、xz、lzma、lz4缺省为zstd。信息与日志-h/-H,--help显示帮助/长帮助并退出。-V,--version显示版本号并立即退出其后的参数被忽略。进阶用法-vV同时显示支持的格式-vvV同时显示 POSIX 支持-qV只输出版本号适合机器读取。-v,--verbose详细模式显示更多信息。-q,--quiet抑制警告、交互与通知指定两次可连错误一起抑制。--no-progress不显示进度条保留其他消息。--show-default-cparams显示基于给定压缩级别与输入大小为特定文件选定的默认压缩参数若输入不是常规文件如管道输出未知大小输入所用的参数。--exclude-compressed只压缩尚未被压缩过的文件。--其后的所有参数一律视为文件。gzip 兼容修饰符当通过gzip符号链接调用 zstd 时额外支持以下 gzip 式选项-n,--no-name压缩时不保存原始文件名与时间戳。这是默认行为因此实际为空操作。--best-9的别名。环境变量手册明确指出用环境变量设置参数存在安全隐患因此该途径被有意限制目前仅支持两个变量且均可被命令行参数-#与-T#覆盖变量作用说明ZSTD_CLEVEL默认压缩级别仅接受 1-19 的常规区间非法整数会被忽略并告警只是替换默认级别 3ZSTD_NBTHREADS压缩线程数非法无符号整数会被忽略并告警默认值为max(1, min(4, nbCores/4))上限ZSTDMT_NBWORKERS_MAX200需编译多线程支持才生效五、高级压缩选项22 个常规级别背后的精细旋钮zstd 提供22 个预定义常规压缩级别加上快速级别。每个级别内部会被翻译成一组高级参数可用--show-default-cparams观察这些参数可通过高级压缩选项单独覆盖。--zstd[options]逐参数调优--zstd的 options 以逗号分隔列表给出只写需要改动的项其余沿用所选或默认级别的取值。全部可选参数如下参数别名含义取值范围与说明strategystrat匹配查找器使用的策略共 9 种1-9 由快到强1ZSTD_fast、2ZSTD_dfast、3ZSTD_greedy、4ZSTD_lazy、5ZSTD_lazy2、6ZSTD_btlazy2、7ZSTD_btopt、8ZSTD_btultra、9ZSTD_btultra2windowLogwlog匹配距离的最大位数最小 101 KiB最大 301 GiB32 位/ 312 GiB64 位。越大越易找到匹配、压缩比越高但压缩/解压内存都增大27 时解压需--long或--memoryhashLoghlog哈希表最大位数最小 664 项/256 B最大 3010 亿项/4 GiB。表越大冲突越少、压缩越快但压缩内存更大chainLogclog次级搜索结构形式取决于 strategy最大位数最小 664 项/256 B最大 2932 位/ 3064 位。位数越高越易命中、压缩比越高但更慢且更耗内存对只有主哈希表的ZSTD_fast无效searchLogslog哈希链/二叉树中最大搜索次数对数刻度最小 1最大windowLog - 1。搜索越多压缩比越高、速度越慢minMatchmml哈希表中匹配的最小搜索长度最小 3最大 7。越大通常压缩比略降但解压更快targetLengthtlen影响因 strategy 而异对ZSTD_btopt/btultra/btultra2触发匹配查找器停止搜索的最小匹配长度越大压缩比越高、速度越慢对ZSTD_fast0 时触发超快模式值为匹配采样间的跳过数据量越大越快、压缩比越低其余策略无影响。最小 0最大 128 KiBoverlapLogovlog从上一 job 重载的数据量overlapSize仅多线程可用最小 0最大 9。1无重叠9完全重叠最多重载windowSize每减 1 重载量减半8windowSize/26windowSize/80 为特殊值表示默认由 zstd 根据 strat 在 6-9 间自动确定ldmHashRateLoglhrlog长距离匹配哈希表插入条目的频率仅在启用长距离匹配时生效。越大压缩越快偏离默认值过远通常压缩比下降默认随 strategy 在 4-7 间变化ldmHashLoglhlog长距离匹配哈希表最大尺寸仅在启用长距离匹配时生效。最小 6最大 30默认windowLog - ldmHashRateLog。表越大压缩比越高但压缩内存与耗时增加ldmMinMatchlmml长距离匹配的最小搜索长度仅在启用长距离匹配时生效。最小 4最大 4096默认随 strategy 在 32-64 间。过大/过小通常都会降低压缩比ldmBucketSizeLoglblog长距离匹配哈希表每个桶的大小仅在启用长距离匹配时生效。最小 1最大 8默认随 strategy 在 4-8 间。桶越大冲突解决越好但压缩更慢官方示例以下参数组合将高级压缩选项设置为接近对大于 256 KB 的文件使用预定义级别 19的效果--zstdwlog23,clog23,hlog22,slog6,mml3,tlen48,strat6-B#压缩 job 大小指定每个压缩 job 的大小仅多线程模式下可用。每个 job 并行执行因此该值间接影响活跃线程数。默认 job 大小随压缩级别变化通常为4 * windowSize。job 大小必须满足透明强制执行的最小值512 KB 与overlapSize中的较大者。不同的 job 大小会产生不完全一致的压缩帧。六、字典构建器Dictionary Builderzstd 提供字典压缩能力可大幅提升小文件与小消息的压缩效率先用一批样本训练出字典文件压缩与解压时通过-D dictionaryFileName引用同一字典与样本集相似的小文件压缩效果将显著提升。--train训练--train FILEs用 FILEs 作为训练集生成字典。训练集理想情况下应包含大量样本 100总重量约为目标字典大小的100 倍例如 100 KB 字典约需 10 MB 样本。可与-r组合指定目录规避 shell 展开限制。字典压缩主要针对小文件因此期望训练集只含小文件若存在大样本每个样本仅前 128 KiB 参与训练。--train在编译支持线程时默认启用多线程。三个构建器变体默认--train等价于--train-fastcoverd8,steps4--train-cover为较慢的 cover 构建器--train-legacy为传统构建器。训练相关选项选项说明-o FILE字典保存到FILE默认名dictionary--maxdict#限制字典大小默认 112640 字节支持KB/MB等后缀-#训练时使用压缩级别#可选生成的统计更贴合该级别带来小幅压缩比提升-B#将输入文件拆分为#大小的块默认不拆分-M#,--memory#限制训练加载的样本数据量默认 2 GB同时也是上限。训练速度与样本集大小直接相关小样本集训练更快训练集超过内存预算时CLI 会在预算内随机挑选样本随机过程确定性强同参数同文件列表训练结果一致以缓解按修改时间或字母序排序导致的样本聚集偏差--dictID#字典 ID 是本地唯一 ID解码器用它校验字典是否正确。默认生成 4 字节随机 ID也可显式指定短 ID 有优势ID 256 在帧头仅占 1 字节ID 65536 占 2 字节对比默认 4 字节。注意 RFC 8878 保留小于 32768 及大于等于 2^31 的 ID不应在公开场合使用三种构建器算法--train-cover[k#,d#,steps#,split#,shrink[#]]默认字典构建算法 cover。d未指定时尝试 6 与 8k未指定时在 [50, 2000] 区间尝试steps个值steps默认 40split未指定或 ≤0 时默认 100要求d kshrink未使用时shrinkDict默认 0shrink未指定时shrinkDictMaxRegression默认 1。原理选出得分最高的k大小片段放入字典片段得分 其所有d大小子片段频率之和。一般d在 [6,8]偶尔到 16但d 8运行更快k的安全范围 [2*d, 2000]split100时全部样本同时用于训练与测试以寻找最优d/k。启用shrink时从最小截断字典开始倍增直到截断字典的压缩比不比最大字典差超过shrinkDictMaxRegression%。示例zstd --train-cover FILEs zstd --train-coverk50,d8 FILEs zstd --train-coverd8,steps500 FILEs zstd --train-coverk50 FILEs zstd --train-coverk50,split60 FILEs zstd --train-covershrink FILEs zstd --train-covershrink2 FILEs--train-fastcover[k#,d#,f#,steps#,split#,accel#]与 cover 相同但多了f与accel参数且split默认值不同未指定时尝试 75。f未指定时尝试 20要求 0 f 32accel未指定时尝试 1要求 0 accel 10要求d 6或d 8。f是记录d大小子片段频率的数组大小的对数子片段哈希到 [0, 2^f - 1] 区间不同子片段可能哈希到同一索引而被视为同一子片段f越大冲突越少但耗时更长。示例zstd --train-fastcover FILEs zstd --train-fastcoverd8,f15,accel2 FILEs--train-legacy[selectivity#]传统构建器接受字典选择性参数默认 9--train-legacys#亦可。选择性越小字典越稠密效率越高但可达最大尺寸越小。示例zstd --train-legacy FILEs zstd --train-legacyselectivity8 FILEs七、基准测试模式Benchmarkzstd CLI 内置基准测试模式可用于快速寻找合适的压缩参数或评估机器性能。zstd -b [FILE(s)]使用默认压缩级别同时基准压缩与解压。结果高度依赖被压缩内容可传多文件目录需配合-r DIRECTORY未提供 FILE 时使用程序化生成的 lorem ipsum 文本。基准测试默认使用max(1, min(4, nbCores/4))个工作线程以匹配常规 CLI 的 I/O 行为。选项说明-b#使用压缩级别#基准测试-e#从-b#到-e#含多个级别依次基准-d仅基准解压速度需提供 zstd 压缩内容-i#单次最小评估时长秒默认 3s仅基准模式-B#,--block-size#将文件切为#大小的独立块默认不切块-S每个输入文件输出一条基准结果默认合并结果-D dictionary使用字典基准--priorityrt将进程优先级设为实时Windows基准模式同样兼容线程数-T#、高级参数--zstd###、字典-D等组合甚至可关闭校验和验证。输出格式CompressionLevel#Filename: InputSize - OutputSize (CompressionRatio), CompressionSpeed, DecompressionSpeed测量方法速度测量时整个输入在内存中完成压缩/解压单次运行至少持续 1 秒小文件会被重复压缩/解压多次以提高测量精度。八、仓库内的 zstd从命令行工具到 Fluent Bit 压缩引擎zstd 在 Fluent Bit 仓库中不仅是随附的第三方库更是被深度集成的压缩能力。以下源码证据帮助你将命令行概念与仓库实现对应起来。1. 构建集成cmake/zstd.cmake 控制 zstd 的编译方式set(ZSTD_BUILD_STATIC ON) set(ZSTD_BUILD_SHARED OFF) set(ZSTD_BUILD_COMPRESSION ON) set(ZSTD_BUILD_DECOMPRESSION ON) set(ZSTD_BUILD_DICTBUILDER OFF) set(ZSTD_BUILD_DEPRECATED OFF)可见 Fluent Bit 只静态链接 zstd 的压缩/解压部分未启用字典构建器ZSTD_BUILD_DICTBUILDER OFF产物为libzstd_static。2. 核心封装层src/flb_zstd.c 与 include/fluent-bit/flb_zstd.h 提供了对 zstd 原生 API 的封装flb_zstd_compress通过ZSTD_compressBound估算输出上限以固定压缩级别 1调用ZSTD_compressflb_zstd_uncompress先用ZSTD_getFrameContentSize探测帧内容大小区分ZSTD_CONTENTSIZE_ERROR报错与ZSTD_CONTENTSIZE_UNKNOWN走流式解压路径zstd_uncompress_unknown_size未知大小时以 64 KBFLB_ZSTD_DEFAULT_CHUNK起步、倍增扩容上限100 MBFLB_ZSTD_DECOMPRESS_MAX使用ZSTD_decompressStream流式解压flb_zstd_decompressor_dispatch/flb_zstd_decompression_context_create/flb_zstd_decompression_context_destroy面向流式解压场景的上下文化接口通过ZSTD_findFrameCompressedSize定位帧边界并把srcSize_wrong视为数据未到齐的可恢复状态而非致命错误。3. 在插件与核心模块中的调用点HTTP 内容协商src/flb_http_common.c 中uncompress_zstd与compress_zstd直接调用flb_zstd_uncompress/flb_zstd_compress与 gzip、snappy 并列组成 HTTP 层的内容编码处理。out_http 输出插件plugins/out_http/http.c 在compress_zstd FLB_TRUE时对 payload 调用flb_zstd_compress并随后设置Content-Encoding: zstd见 plugins/out_http/http.c#L260-L262该插件的Compress配置项明确列出可取值gzip、snappy、zstd见 plugins/out_http/http.c#L854。in_forward 输入插件plugins/in_forward/fw_prot.c 解析 Forward 协议的compressedzstd选项返回FLB_COMPRESSION_ALGORITHM_ZSTD并通过统一的解压上下文完成流式解压支持按帧边界渐进式处理见 plugins/in_forward/fw_prot.c#L1780-L1927。AWS 服务src/aws/flb_aws_compress.c 将flb_zstd_compress注册进 AWS 压缩分发表供 Kinesis Streams / Firehose / S3 等 AWS 输出插件选用。从源码结构看zstd 在 Fluent Bit 内承担着HTTP 内容编码、Forward 协议压缩帧、AWS 负载压缩三类角色其 CLI 手册中关于级别、线程、字典、校验与内存控制的全部概念在库 API 层面ZSTD_compress、ZSTD_decompressStream、ZSTD_findFrameCompressedSize等都有对应实现可查。九、格式规范与其他工具手册指出 Zstandard 帧格式由RFC 8878Zstandard Compression and the application/zstd Media Type2021 年 2 月发布定义字典 ID 保留区间的约定同样来自该规范。相关工具还包括zstdgrep(1)、zstdless(1)以及风格相近的gzip(1)、xz(1)。完整、可随时查阅的官方手册源文件即 programs/zstd.1.md建议读者在深入调优时直接对照原文库级 API 文档见 lib/zstd-1.5.7/lib/zstd.h其中包含全部函数原型、常量与错误码说明。十、实战速查常用命令组合最后给出几组覆盖日常与进阶场景的速查命令默认源文件保留需删除时追加--rm# 压缩单个文件默认级别 3 zstd bigfile.log # 指定级别与多线程压缩 zstd -19 -T0 bigfile.log # 超快速压缩--fast 默认 1 zstd --fast5 bigfile.log # 解压并保留源文件 zstd -d bigfile.log.zst # 解压到标准输出 zstd -dc bigfile.log.zst # 完整性校验不产生输出 zstd -t bigfile.log.zst # 查看压缩文件信息 zstd -lv bigfile.log.zst # 用字典压缩/解压小文件 zstd --train -r samples/ -o dict zstd -D dict small_msg.txt zstd -d -D dict small_msg.txt.zst # 基准测试级别 1 到 9 zstd -b1 -e9 -i5 data.bin # 查看某输入在该级别下将使用的默认压缩参数 zstd --show-default-cparams data.bin结合本文对 zstd.1.md 手册的逐节解读以及 src/flb_zstd.c 等仓库源码的佐证你已具备从命令行调优到理解 Fluent Bit 内部 zstd 压缩链路的完整知识闭环。【免费下载链接】fluent-bitFast and Lightweight Logs, Metrics and Traces processor for Linux, BSD, OSX and Windows项目地址: https://gitcode.com/GitHub_Trending/fl/fluent-bit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考