-
Notifications
You must be signed in to change notification settings - Fork 0
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
RDMA put() throughput low below 1MB level #103
Comments
Currently the RDMA code calls ibv_reg_mr to register the memory that every sent object resides in. This may be a bottleneck in the code, and would also affect the lower message sizes more than larger messages (as it has a per message cost). |
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.189.1285&rep=rep1&type=pdf Figure 8 shows how up to a certain point the cost of registration is higher than that of copying, which explains why some of the RDMA results are worse than TCP and some are better than TCP. |
@jcarreira I believe that the following may be an effective way to improve RDMA throughput, what do you think?:
It may be possible to do something similar to optimize the |
At the 1MB level, the RDMA code sees a throughput of ~2.5 GB/s for puts. However, at lower levels, the performance is worse.
128: ~1 MB/s
4K: 37 MB/s
50k: 400 MB/s
1MB: ~2.5 GB/s
For gets:
128: ~1 MB/s
4k: ~37 MB/s
50k: ~375 MB/s
1MB: ~2 GB/s
This performance should be improved.
The text was updated successfully, but these errors were encountered: