在"不同条件下添加、删除、过滤字段"这一典型场景的极限测试中:
- Logstash处理瓶颈:约8MB/s。超过此速率后,日志生成结束时Logstash仍在处理积压数据,产生明显的采集延迟。
- iLogtail SPL处理能力:在50MB/s速率下仍几乎无延迟地采集日志,CPU使用率130%,内存仅61MB。
两者性能相差约6倍。
性能差距的原因:
- iLogtail SPL底层使用C++编写,利用SIMD等高性能计算技术对日志数据进行并行处理。
- Logstash的filter插件使用Ruby编写,脚本语言本身限制了处理性能。
- Logstash filter的设计采用每次只处理一条日志的模式,不能并行处理一组日志。在短日志高吞吐场景下尤为突出。
虽然Logstash可通过增加线程数缓解,但会导致更高的资源使用量。




