-
-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance of bb8 with tokio-postgres worse than r2d2 with postgres #29
Comments
One useful statistic to know there would be how many postgres connections are actually used in each case. I suspect the async libraries are using far more connections than the blocking r2d2. |
As you can see in the code I use the same pool size for all three implementations:
They were not extracted into constants before. I just changed that to make it more obvious that the pools are configured exactly the same. I also made sure to run |
On my machine, with a release build of your test binary, I get Running 2m test @ http://localhost:8000/v1.0/event_list_l337
4 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.12ms 567.15us 29.99ms 78.09%
Req/Sec 7.79k 164.50 8.97k 73.35%
Latency Distribution
50% 4.04ms
75% 4.37ms
90% 4.77ms
99% 5.98ms
3720626 requests in 2.00m, 1.49GB read
Requests/sec: 30994.28
Transfer/sec: 12.71MB
Running 2m test @ http://localhost:8000/v1.0/event_list_r2d2
4 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.65ms 2.41ms 50.40ms 88.78%
Req/Sec 7.23k 316.71 27.38k 98.71%
Latency Distribution
50% 3.69ms
75% 4.42ms
90% 7.49ms
99% 14.98ms
3453682 requests in 2.00m, 1.38GB read
Requests/sec: 28756.74
Transfer/sec: 11.79MB
Running 2m test @ http://localhost:8000/v1.0/event_list_bb8
4 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.96ms 322.86us 32.02ms 82.08%
Req/Sec 6.48k 92.65 7.41k 92.40%
Latency Distribution
50% 4.92ms
75% 5.09ms
90% 5.28ms
99% 5.81ms
3096725 requests in 2.00m, 1.24GB read
Requests/sec: 25802.00
Transfer/sec: 10.58MB which is more along the lines of what I would expect. |
I just updated |
It really seams to be an issue of the |
I wanted to go full async with the application I'm currently building and tried both bb8 and l337 with tokio-postgres just to find that both performed worse than r2d2 with postgres:
https://bitbucket.org/bikeshedder/actix_web_async_postgres/src/master/
Am I doing anything wrong or is this maybe an issue with tokio-postgres?
The text was updated successfully, but these errors were encountered: