Linux性能测试报告
1. 技术概述与测试背景
1.1 测试背景
本报告旨在深度对比 WarpParse 与 Vector 在高性能日志处理场景下的能力差异。基于 Linux 平台测试数据,覆盖从轻量级 Web 日志到复杂的安全威胁日志,重点评估两者在单机环境下的解析(Parse)与转换(Transform)性能、资源消耗及规则维护成本。
1.2 被测对象
- WarpParse: 大禹安全公司研发的高性能 ETL 核心引擎,采用 Rust 构建,专为极致吞吐和复杂安全日志分析设计。
- Vector: 开源领域标杆级可观测性数据管道工具,同样采用 Rust 构建,以高性能和广泛的生态兼容性著称。
2. 测试环境与方法
2.1 测试环境(Test Environment)
平台信息(Platform)
- 平台类型:AWS EC2
- 操作系统:Ubuntu 24.04 LTS
- 系统架构:x86_64
计算资源(Compute)
- CPU:8 vCPU
- 内存:16 GiB
存储配置(Storage)
- 存储类型:Amazon EBS
- 卷类型:通用型 SSD(gp3)
- 卷大小:128 GiB
- IOPS:30,000
- 吞吐量:200 MiB/s
说明(Notes)
- gp3 卷支持 IOPS 与吞吐量独立配置,用于避免容量与性能强绑定
- 当前配置提供较高的随机 I/O 能力(IOPS),并具备中等顺序 I/O 吞吐能力
2.2 测试范畴 (Scope)
- 日志类型:
- Nginx Access Log (239B): 典型 Web 访问日志,高吞吐场景。
- AWS ELB Log (411B): 云设施负载均衡日志,中等复杂度。
- Sysmon JSON (1K): 终端安全监控日志,JSON 结构,字段较多。
- APT Threat Log (3K): 模拟的高级持续性威胁日志,大体积、长文本。
- Mixed Log: 上述四类日志混合形成的日志类型。
- 数据拓扑:
- File -> BlackHole: 测算引擎极限 I/O 读取与处理能力 (基准)。
- TCP -> BlackHole: 测算网络接收与处理能力。
- TCP -> File: 测算端到端完整落地能力。
- 测试能力:
- 解析 (Parse): 仅进行正则提取/JSON解析与字段标准化。
- 解析+转换 (Parse+Transform): 在解析基础上增加字段映射、富化、类型转换等逻辑。
2.3 评估指标
- EPS (Events Per Second): 每秒处理事件数(核心吞吐指标)。
- MPS (MiB/s): 每秒处理数据量。
- CPU/Memory: 进程平均与峰值资源占用。
- Rule Size: 规则配置文件体积,评估分发与维护成本。
3. 详细性能对比分析
3.1 日志解析能力 (Parse Only)
3.1.1 Nginx Access Log (239B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 790,900 | 180.27 | 549% / 583% | 66 MB / 67 MB | 4.1x |
| Vector | File -> BlackHole | 192,015 | 43.77 | 350% / 364% | 143 MB / 152 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 767,000 | 174.82 | 468% / 605% | 188 MB / 532 MB | 2.1x |
| Vector | TCP -> BlackHole | 371,100 | 84.58 | 519% / 540% | 153 MB / 157 MB | 1.0x |
| WarpParse | TCP -> File | 397,200 | 90.53 | 616% / 666% | 181 MB / 511 MB | 21.5x |
| Vector | TCP -> File | 18,500 | 4.22 | 186% / 195% | 231 MB / 244 MB | 1.0x |
解析规则大小:
- WarpParse:174B
- Vector:416B
3.1.2 AWS ELB Log (411B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 394,500 | 154.63 | 757% / 775% | 421 MB / 541 MB | 7.5x |
| Vector | File -> BlackHole | 52,875 | 20.72 | 534% / 585% | 145 MB / 152 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 367,700 | 144.12 | 686% / 724% | 205 MB / 564 MB | 6.3x |
| Vector | TCP -> BlackHole | 58,200 | 22.81 | 479% / 531% | 172 MB / 183 MB | 1.0x |
| WarpParse | TCP -> File | 169,700 | 66.52 | 704% / 731% | 170 MB / 222 MB | 11.1x |
| Vector | TCP -> File | 15,300 | 6.00 | 249% / 269% | 159 MB / 163 MB | 1.0x |
解析规则大小:
- WarpParse:1153B
- Vector:2289B
3.1.3 Sysmon JSON Log (1K)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 152,500 | 143.40 | 726% / 776% | 318 MB / 368 MB | 5.1x |
| Vector | File -> BlackHole | 29,444 | 27.68 | 458% / 501% | 202 MB / 213 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 149,800 | 140.86 | 711% / 763% | 221 MB / 678 MB | 4.0x |
| Vector | TCP -> BlackHole | 37,400 | 35.17 | 580% / 650% | 236 MB / 246 MB | 1.0x |
| WarpParse | TCP -> File | 104,900 | 98.64 | 750% / 764% | 169 MB / 505 MB | 7.7x |
| Vector | TCP -> File | 13,600 | 12.79 | 323% / 352% | 213 MB / 222 MB | 1.0x |
解析规则大小:
- WarpParse:1552B
- Vector:3259B
3.1.4 APT Threat Log (3K)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 134,700 | 455.65 | 465% / 565% | 136 MB / 161 MB | 9.8x |
| Vector | File -> BlackHole | 13,780 | 46.61 | 534% / 614% | 190 MB / 193 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 129,600 | 438.40 | 502% / 606% | 237 MB / 273 MB | 7.4x |
| Vector | TCP -> BlackHole | 17,400 | 58.86 | 783% / 795% | 228 MB / 246 MB | 1.0x |
| WarpParse | TCP -> File | 63,500 | 214.80 | 492% / 560% | 423 MB / 1161 MB | 7.8x |
| Vector | TCP -> File | 8,100 | 27.40 | 457% / 528% | 217 MB / 226 MB | 1.0x |
解析规则大小:
- WarpParse:985B
- Vector:1759B
3.1.5 Mixed Log (平均日志大小:867B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 267,600 | 221.26 | 649% / 758% | 298 MB / 347 MB | 4.7x |
| Vector | File -> BlackHole | 56,774 | 46.94 | 794% / 800% | 178 MB / 182 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 259,000 | 214.15 | 706% / 822% | 309 MB / 320 MB | 4.4x |
| Vector | TCP -> BlackHole | 58,500 | 48.37 | 778% / 787% | 205 MB / 216 MB | 1.0x |
| WarpParse | TCP -> File | 159,900 | 132.21 | 696% / 728% | 121 MB / 185 MB | 10.8x |
| Vector | TCP -> File | 14,800 | 12.24 | 294% / 318% | 203 MB / 215 MB | 1.0x |
解析规则大小:
- WarpParse:6102B
- Vector:9373B
混合日志规则:
- 4类日志按照3:2:1:1混合
3.2 解析 + 转换能力 (Parse + Transform)
3.2.1 Nginx Access Log(239B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 649,100 | 147.95 | 659% / 704% | 194 MB / 505 MB | 3.6x |
| Vector | File -> BlackHole | 181,739 | 41.42 | 381% / 397% | 156 MB / 169 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 574,200 | 130.88 | 522% / 613% | 138 MB / 383 MB | 1.8x |
| Vector | TCP -> BlackHole | 318,900 | 72.69 | 462% / 538% | 161 MB / 167 MB | 1.0x |
| WarpParse | TCP -> File | 299,900 | 68.36 | 583% / 644% | 145 MB / 348 MB | 16.9x |
| Vector | TCP -> File | 17,700 | 4.03 | 146% / 151% | 137 MB / 140 MB | 1.0x |
解析+转换规则大小:
- WarpParse:521B
- Vector:682B
3.2.2 AWS ELB Log(411B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 265,800 | 104.18 | 626% / 713% | 248 MB / 362 MB | 5.1x |
| Vector | File -> BlackHole | 52,380 | 20.53 | 495% / 551% | 171 MB / 181 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 239,600 | 93.91 | 576% / 628% | 120 MB / 166 MB | 4.3x |
| Vector | TCP -> BlackHole | 55,800 | 21.87 | 483% / 520% | 180 MB / 184 MB | 1.0x |
| WarpParse | TCP -> File | 139,900 | 54.84 | 679% / 741% | 183 MB / 284 MB | 7.8x |
| Vector | TCP -> File | 17,900 | 7.02 | 261% / 281% | 169 MB / 174 MB | 1.0x |
解析+转换规则大小:
- WarpParse:1694B
- Vector:2650B
3.2.3 Sysmon JSON Log (1K)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 126,800 | 119.23 | 748% / 793% | 281 MB / 422 MB | 4.5x |
| Vector | File -> BlackHole | 28,157 | 26.48 | 454% / 511% | 221 MB / 232 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 119,900 | 112.74 | 715% / 772% | 180 MB / 563 MB | 3.5x |
| Vector | TCP -> BlackHole | 34,200 | 32.16 | 568% / 701% | 255 MB / 266 MB | 1.0x |
| WarpParse | TCP -> File | 84,900 | 79.83 | 706% / 764% | 170 MB / 384 MB | 5.8x |
| Vector | TCP -> File | 14,700 | 13.82 | 344% / 414% | 240 MB / 252 MB | 1.0x |
解析+转换规则大小:
- WarpParse:2249B
- Vector:3782B
3.2.4 APT Threat Log (3K)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 122,500 | 414.38 | 542% / 637% | 161 MB / 204 MB | 9.6x |
| Vector | File -> BlackHole | 12,783 | 43.24 | 546% / 580% | 194 MB / 198 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 114,800 | 388.33 | 534% / 543% | 234 MB / 277 MB | 7.3x |
| Vector | TCP -> BlackHole | 15,700 | 53.11 | 786% / 796% | 236 MB / 249 MB | 1.0x |
| WarpParse | TCP -> File | 58,700 | 198.56 | 473% / 569% | 682 MB / 1296 MB | 6.4x |
| Vector | TCP -> File | 9,200 | 31.12 | 487% / 521% | 224 MB / 233 MB | 1.0x |
解析+转换规则大小:
- WarpParse:1638B
- Vector:2259B
3.2.5 Mixed Log (平均日志大小:867B)
| 引擎 | 拓扑 | EPS | MPS | CPU (Avg/Peak) | MEM (Avg/Peak) | 性能倍数 |
|---|---|---|---|---|---|---|
| WarpParse | File -> BlackHole | 223,300 | 184.63 | 673% / 777% | 328 MB / 387 MB | 3.9x |
| Vector | File -> BlackHole | 56,666 | 46.85 | 792% / 798% | 181 MB / 184 MB | 1.0x |
| WarpParse | TCP -> BlackHole | 209,300 | 173.06 | 659% / 701% | 128 MB / 161 MB | 3.7x |
| Vector | TCP -> BlackHole | 57,300 | 47.38 | 782% / 787% | 202 MB / 211 MB | 1.0x |
| WarpParse | TCP -> File | 134,900 | 111.54 | 695% / 736% | 121 MB / 154 MB | 7.0x |
| Vector | TCP -> File | 19,400 | 16.04 | 308% / 317% | 209 MB / 213 MB | 1.0x |
解析+转换规则大小:
- WarpParse:6102B
- Vector:9373B
混合日志规则:
- 4类日志按照3:2:1:1混合
4. 核心发现与架构优势分析
4.1 性能与资源效率
核心发现:
- 吞吐量领先: Linux 平台各测试场景下,WarpParse 在解析场景领先 2.0x - 21.5x,解析+转换场景领先 1.8x - 16.9x。
- 算力利用率: WarpParse 依然采用“以算力换吞吐”的策略,CPU 占用高于 Vector,但换取数倍吞吐回报。
- 大日志处理: 在 APT (3K) 场景下,WarpParse 维持高吞吐与高 MPS,Vector 吞吐下降明显。
4.2 规则与维护成本
优势分析:
- 规则体积更小: 同等语义下,WarpParse 的规则体积显著小于 Vector 的 VRL 脚本。
- Nginx: 174B (WarpParse) vs 416B (Vector)
- APT: 985B (WarpParse) vs 1759B (Vector)
- 维护性: 规则体积更小意味着更快的分发与更短的冷启动时间,适合大规模 Agent 或边缘场景。
4.3 稳定性
- 压力测试过程中,WarpParse 保持稳定吞吐,未观察到明显背压导致的处理崩塌。
- 注意点: 在 TCP -> File 场景下,WarpParse 的内存占用在大包场景会有上升(如 APT 场景 1GB+),与其缓冲策略相关。
5. 总结与建议
| 决策维度 | 建议方案 | 理由 |
|---|---|---|
| 追求极致性能 | WarpParse | Linux 场景下 WarpParse 提供 2-20x 的性能优势,特别是 TCP -> File 端到端链路表现突出。 |
| 资源受限环境 | WarpParse | 峰值 CPU 较高,但完成同等数据量所需的总 CPU 时间更少;小包场景内存控制优秀。 |
| 边缘/Agent部署 | WarpParse | 规则文件小,便于快速热更新;单机处理能力强,减少中心端压力。 |
| 通用生态兼容 | WarpParse | 提供面向开发者的 API 与插件扩展机制,支持自定义输入/输出模块,兼顾性能与生态扩展能力。 |
结论: Linux 平台测试显示,WarpParse 在吞吐、规则体积与端到端能力上均优于 Vector,特别适用于 SIEM/SOC 等实时高吞吐日志处理场景。