Skip to content
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

AsyncMessenger: reduce extra tcp packet for message ack #7380

Merged
merged 4 commits into from Feb 4, 2016

Conversation

yuyuyu101
Copy link
Member

No description provided.

@yuyuyu101
Copy link
Member Author

@branch-predictor I added MSG_MORE flag to message ack too! Pipe will do this but async doesn't do this before. It should be helpful. And it's my test reuslt:

One server machine, one client machine, do 18k randread, the packet number is from osd side.
osd-simple + client-async: 25500/25500 (in/out)
osd-simple + client-simple: 29000/25000 (in/out)
osd-async + client-async: 21000/21000 (in/out)
osd-async + client-simple: 26800/21800 (in/out)

Based on the same randread iops(using fio with --rate_iops=18000), the lower number should be better which indicate using less packets.

@branch-predictor
Copy link
Contributor

@yuyuyu101 I was about to add it too, but seeing that forcing it everywhere caused serious perf drop, I decided to wait until I'll have more time to do it right. Thanks!

@yuyuyu101 yuyuyu101 changed the title AsyncMessenger: add helper counter to discover performance problem AsyncMessenger: reduce extra tcp packet for message ack Jan 28, 2016
@yuyuyu101
Copy link
Member Author

@liewegas
@branch-predictor has verified this PR could reduce tcp packet to equal simple messenger packet

Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
@branch-predictor
Copy link
Contributor

And I have some graphs to support this.
While the cluster was idle, this changeset made Async Messenger behave similarly to Simple Messenger, and when doing rados bench, Async Messenger sent way less packets, though it's not directly comparable as Simple Messenger had about 200MB/s better throughput (908MB/s vs 1112MB/s). In both cases, the heartbeat rate was increased to generate load by putting

osd heartbeat interval = 1

into ceph.conf.

Idle cluster:
packets_idle

During rados bench:
packets_bench

liewegas added a commit that referenced this pull request Feb 4, 2016
msg/async: reduce extra tcp packet for message ack
@liewegas liewegas merged commit 21a65fc into ceph:master Feb 4, 2016
@yuyuyu101 yuyuyu101 deleted the async-nip branch February 4, 2016 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants