配置项作用 #
transport.compress 配置项控制集群节点间传输层通信是否启用数据压缩。启用压缩可以减少网络传输的数据量,但会增加 CPU 开销。此配置是已弃用的 transport.tcp.compress 配置的新名称。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
false(不启用压缩)
是否必需 #
可选配置项(有默认值)
取值范围 #
true - 启用压缩
false - 禁用压缩
配置格式 #
# 默认配置(不压缩)
transport.compress: false
# 启用压缩
transport.compress: true
# 旧配置名称(已弃用)
transport.tcp.compress: true
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
transport.compress | false | 传输层压缩开关 |
transport.tcp.compress | false | 已弃用的压缩配置 |
http.compress | true | HTTP 层压缩 |
工作原理 #
传输层压缩机制:
┌─────────────────────────────────────────────────────────────────┐
│ 传输层数据压缩流程 │
└─────────────────────────────────────────────────────────────────┘
节点 A 发送数据
│
▼
检查 compress 配置
│
├── false(默认)
│ │
│ └── 直接发送原始数据
│ - 网络传输:较大
│ - CPU 消耗:低
│ - 传输时间:取决于网络
│
└── true
│
├── 压缩数据
│ - 算法:LZ4
│ - CPU 消耗:中等
│ - 压缩比:取决于数据
│
└── 发送压缩数据
- 网络传输:较小
- 传输时间:可能更短
压缩效果分析 #
数据类型对压缩效果的影响:
高压缩比数据:
├── 文本数据(JSON, XML)
│ - 压缩比: 5:1 ~ 10:1
│ - 推荐: 启用压缩
│
├── 日志数据
│ - 压缩比: 3:1 ~ 8:1
│ - 推荐: 启用压缩
│
└── 重复内容多的数据
- 压缩比: 高
- 推荐: 启用压缩
低压缩比数据:
├── 已压缩数据(图片, 视频)
│ - 压缩比: 接近 1:1
│ - 推荐: 不启用压缩
│
├── 二进制数据
│ - 压缩比: 接近 1:1
│ - 推荐: 不启用压缩
│
└── 加密数据
- 压缩比: 接近 1:1
- 推荐: 不启用压缩
使用场景 #
1. 默认配置(推荐) #
transport.compress: false
适用场景:
- 千兆网络环境
- CPU 资源有限
- 数据压缩比低
- 本地网络通信
2. 启用压缩 #
transport.compress: true
适用场景:
- 跨地域集群
- 网络带宽有限
- 传输大量文本数据
- CPU 资源充足
推荐设置建议 #
| 网络环境 | 数据类型 | 推荐值 | 说明 |
|---|---|---|---|
| 千兆本地 | 任意 | false | 网络足够快 |
| 百兆跨机房 | 文本 | true | 减少传输量 |
| 跨地域 | 文本 | true | 节省带宽 |
| 跨地域 | 二进制 | false | 压缩效果差 |
| CPU 受限 | 任意 | false | 优先 CPU |
| 带宽受限 | 文本 | true | 优先带宽 |
性能权衡分析 #
启用压缩的影响:
优点:
✓ 减少网络传输量
✓ 降低带宽使用
✓ 可能加快传输速度
✓ 节省网络成本
缺点:
✗ 增加 CPU 使用
✗ 增加延迟
✗ 可能影响整体吞吐量
✗ 压缩已压缩数据无意义
决策因素:
- 网络带宽
- CPU 资源
- 数据类型
- 距离/延迟
配置示例 #
# 场景 1: 本地高性能集群
cluster.name: high-performance-cluster
network.host: 192.168.1.10
transport.compress: false
# 场景 2: 跨地域集群
cluster.name: geo-cluster
network.host: 10.0.0.10
transport.compress: true
# 场景 3: 资源受限环境
cluster.name: small-cluster
network.host: 192.168.1.10
transport.compress: false
监控建议 #
# 查看当前配置
GET /_nodes/settings?filter_path=nodes.*.transport.compress
# 查看网络统计
GET /_nodes/stats/transport
# 查看节点传输信息
GET /_cat/nodes?v&h=name,transport*
# 监控 CPU 使用率
GET /_nodes/stats?filter_path=nodes.*.os.cpu
性能测试建议 #
测试步骤:
1. 关闭压缩,记录基准数据
- 吞吐量
- 延迟
- CPU 使用率
- 网络流量
2. 启用压缩,记录相同数据
3. 对比分析
- 吞吐量变化
- 延迟变化
- CPU 使用变化
- 网络流量变化
4. 决策
- 如果带宽节省 > CPU 开销 → 启用
- 如果性能下降明显 → 禁用
与其他压缩配置的关系 #
压缩配置层次:
1. HTTP 层压缩 (http.compress)
- 作用于 REST API
- 默认启用
- 客户端-服务器通信
2. 传输层压缩 (transport.compress)
- 作用于节点间通信
- 默认禁用
- 集群内部通信
3. 索引存储压缩 (index.codec)
- 作用于数据存储
- 默认 LZ4
- 磁盘空间优化
建议:
- HTTP 层: 保持启用
- 传输层: 根据实际情况决定
- 存储: 根据数据类型选择
注意事项 #
- 静态配置:修改需要重启节点
- CPU 开销:压缩会消耗 CPU 资源
- 数据类型:文本数据压缩效果更好
- 网络条件:带宽受限时更有价值
- 测试验证:实际环境中测试效果
- 配置一致性:集群内所有节点应保持一致





