Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
http input puma to netty rewrite
% siege -c 10 -t 5m http://127.0.0.1:8080
** SIEGE 4.0.4
** Preparing 10 concurrent users for battle.
The server is now under siege...
Lifting the server siege...
Transactions: 4200822 hits
Availability: 100.00 %
Elapsed time: 299.37 secs
Data transferred: 8.01 MB
Response time: 0.00 secs
Transaction rate: 14032.21 trans/sec
Throughput: 0.03 MB/sec
Concurrency: 9.56
Successful transactions: 4200822
Failed transactions: 0
Longest transaction: 0.29
Shortest transaction: 0.00
/tmp/benchies/new/logstash-6.4.0 % bin/logstash -e "input { http { id => netty port => 8080 }} output {}"
Sending Logstash logs to /tmp/benchies/new/logstash-6.4.0/logs which is now configured via log4j2.properties
[2018-08-20T11:23:41,088][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-08-20T11:23:42,478][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.4.0"}
[2018-08-20T11:23:46,635][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2018-08-20T11:23:47,429][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x75e668ee run>"}
[2018-08-20T11:23:47,444][INFO ][logstash.inputs.http ] Starting http input listener {:address=>"0.0.0.0:8080", :ssl=>"false"}
[2018-08-20T11:23:47,560][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2018-08-20T11:23:48,059][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
% siege -c 10 -t 5m http://127.0.0.1:8081
** SIEGE 4.0.4
** Preparing 10 concurrent users for battle.
The server is now under siege...
Lifting the server siege...
Transactions: 3308343 hits
Availability: 100.00 %
Elapsed time: 299.89 secs
Data transferred: 6.31 MB
Response time: 0.00 secs
Transaction rate: 11031.85 trans/sec
Throughput: 0.02 MB/sec
Concurrency: 4.67
Successful transactions: 3308298
Failed transactions: 0
Longest transaction: 0.33
Shortest transaction: 0.00
/tmp/benchies/old/logstash-6.4.0 % bin/logstash-plugin install --version "3.0.10" logstash-input-http
Validating logstash-input-http-3.0.10
Installing logstash-input-http
Installation successful
/tmp/benchies/old/logstash-6.4.0 % bin/logstash -e "input { http { id => puma port => 8081 }} output {}"
Sending Logstash logs to /tmp/benchies/old/logstash-6.4.0/logs which is now configured via log4j2.properties
[2018-08-20T11:23:53,969][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/tmp/benchies/old/logstash-6.4.0/data/queue"}
[2018-08-20T11:23:53,981][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/tmp/benchies/old/logstash-6.4.0/data/dead_letter_queue"}
[2018-08-20T11:23:54,124][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-08-20T11:23:54,176][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"58053e6e-e88a-4ec2-af67-9d16ceeb9754", :path=>"/tmp/benchies/old/logstash-6.4.0/data/uuid"}
[2018-08-20T11:23:54,840][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.4.0"}
[2018-08-20T11:23:56,759][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2018-08-20T11:23:57,067][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x5b197127 run>"}
[2018-08-20T11:23:57,148][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2018-08-20T11:23:57,438][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9601}
@jsvd

This comment has been minimized.

Copy link
Owner Author

@jsvd jsvd commented Aug 20, 2018

This benchmark was run with logstash build candidate for 6.4.0

With older HTTP Input version 3.0.10 - 11031.85 trans/sec
With new HTTP Input version 3.2.0 - 14032.21 trans/sec

Overall improvement on basic http requests with empty payload: 21%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.