Michael Hixson 99940f42f8 Upgrade to Java 9 (#3286) před 7 roky
..
scripts bed6e53bd6 Implement Vert.x Web před 9 roky
src 80ceae5803 Fix the database host name for vertx-web (#3204) před 7 roky
.gitignore bed6e53bd6 Implement Vert.x Web před 9 roky
Readme.md de161e8bf6 Update vertxweb (#2970) před 8 roky
benchmark_config.json de161e8bf6 Update vertxweb (#2970) před 8 roky
pom.xml 99940f42f8 Upgrade to Java 9 (#3286) před 7 roky
setup.sh 80ceae5803 Fix the database host name for vertx-web (#3204) před 7 roky
setup_mongodb.sh e9c5f6f782 DB Setup Changes / New Travis / Vagrant fix - The Promised Land! (#2417) před 8 roky
setup_postgresql.sh e9c5f6f782 DB Setup Changes / New Travis / Vagrant fix - The Promised Land! (#2417) před 8 roky
source_code bed6e53bd6 Implement Vert.x Web před 9 roky

Readme.md

Vert.x Web Benchmarking Test

This is the Vert.x Web portion of a benchmarking test suite comparing a variety of web development platforms.

Test URLs

Plain Text Test

http://localhost:8080/plaintext

JSON Encoding Test

http://localhost:8080/json

Data-Store/Database Mapping Test

http://localhost:8080/mongo/db http://localhost:8080/mongo/queries?queries=5

http://localhost:8080/psql/db http://localhost:8080/psql/queries?queries=5

Data-Store/Database Update Test

http://localhost:8080/mongo/update?queries=5

http://localhost:8080/psql/update?queries=5

Template rendering Test

http://localhost:8080/mongo/fortunes

http://localhost:8080/psql/fortunes

Generating Load

It's best to generate load from a completely separate machine from the server if you can, to avoid resource contention during the test.

We use the wrk load generation tool to generate the load for our benchmark runs. It's the best tool we've found for the job and supports HTTP pipelining (used by the plaintext scenario) via its scripting interface. Wrk will only run from a Linux machine however, so if you must use Windows, try using ab (Apache Bench).

You'll need to clone the wrk repo on your load generation machine and follow their instructions to build it.

Here's a sample wrk command to generate load for the JSON scenario. This run is using 256 connections across 32 client threads for a duration of 10 seconds.

wrk -c 256 -t 32 -d 10 http://127.0.0.1:8080/json

To generate pipelined load for the plaintext scenario, use the following command, assuming your CWD is the root of this repo and wrk is on your path. The final argument after the -- is the desired pipeline depth. We always run the plaintext scenario at a pipeline depth of 16, just like the Techempower Benchmarks.

wrk -c 256 -t 32 -d 15 -s ./scripts/pipeline.lua http://localhost:8080/psql/update?queries=20 -- 16

Note you may want to tweak the number of client threads (the -t arg) being used based on the specs of your load generation machine.