繁体   English   中英

Logstash grok过滤器比Java正则表达式模式匹配慢

[英]Logstash grok filter is slower than Java regex pattern matching

我有一些RFC-5424格式的系统日志消息。

我正在使用logstash grok过滤器和java正则表达式模式匹配来解析日志。 我正在比较两种相同输入的方法。

java正则表达式解析是从stdin读取输入并在单线程中运行。

Logstash还从stdin读取输入,我已将工作线程配置为1,管道批处理大小等于消息数,以便在一个批处理中处理所有消息。

我可以看到java正则表达式解析比grok过滤器快得多。

观察:

输入 - 300K消息

Java Regex - 1500毫升

Logstash Grok - 每次超过1分钟。

为什么Logstash Grok比java正则表达式要慢得多。 Grok也应该在后端使用java正则表达式。

在没有任何更多细节的情况下,很难说出为什么特定模式在Grok或Java中更慢或更快,但有一点是肯定的: 正则表达式引擎是不同的

Java使用特殊的java.util.regex模块, Grok使用Oniguruma正则表达式引擎。 他们可以按照自己的方式处理相同的模式和字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM