Skip to content

Low throughput benchmark test compared to vert.x #392

@duke-cliff

Description

@duke-cliff

For better understanding, I put our test programs both in vert.x and webflux here: https://github.com/uken/webflux-vertx-benchmark.

I am doing some load test comparison on webflux(spring boot2) vs vert.x.

The test case is a very simple text/json echo service. So far from the test result, webflux's throughput is much lower than vert.x(10x with annotation, 8x with functional). One interesting thing I found is with the same load, vert.x is only using basically one thread(eventloop) with a very low CPU usage.
But on webflux, by default it's using all of the NIO threads, but throughput is still not even comparable.

I thought both webflux and vert.x are based on netty(epoll on linux), hope someone could show me what I can tweak with in order to get the result closer.

The client I use is wrk/wrk2.
Options are:
wrk -d60s -t30 -c100 -R 500000 -s post.lua http://xxxx/text

$ more post.lua
wrk.method = "POST"
wrk.body = "{"key":"entity_1","point":1}"
wrk.headers["Content-Type"] = "application/json"

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/perfThis belongs to the performance theme or subset

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions