Skip to content

Significant Performance Regression using Jruby Timeouts #152

Open
@yaauie

Description

@yaauie

I've run a number of performance tests to get the raw throughput per-worker to determine how different variables affect the throughput of the grok, and determined that the changes to timeouts definitely have an outsized impact on grok filters that fall through many patterns to find their match (which makes sense, because the plugin initiates a timeout on each event for each pattern on until we find a match).

6.7.1 7.4.1 JEE 7.4.1 REE
grok-single-pattern 97k 65k 57k
grok-single-pattern-NT 96k 105k 98k
grok-52-fallthrough 42k 15k 17k
grok-52-fallthrough-NT 42k 71k 68k

Caveat: In the above, NT indicates "No Timeout", or timeout_millis => 0, which we do NOT recommend for production since a single pathological input can essentially tie up CPU resources indefinitely)

I will follow up with methodology for the above, and will see if I can get a better apples-to-apples comparison with 6.7.1 using the same version of this plugin as ships with 7.x.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions