Todd Lipcon has submitted this change and it was merged. Change subject: sockaddr: improve hash function for better reactor load balancing ......................................................................
sockaddr: improve hash function for better reactor load balancing While watching 'top -H' on previous RPC benchmarks, I noticed that the workload was not evenly distributed across reactor threads. That made me suspect that the connection hash function was poor. This switches to a better hash which seems to spread the work more evenly among threads. The results are often much better (depending how unlucky the bad hash function was). In a typical run, this gets about 33% improvement for sync and 130% improvement for async. Original: Mode: Sync Client threads: 24 Worker threads: 40 Server reactors: 24 ---------------------------------- Reqs/sec: 278730 User CPU per req: 19.8051us Sys CPU per req: 21.9387us Ctx Sw. per req: 4.04089 Mode: Async Client reactors: 24 Call concurrency: 100 Worker threads: 40 Server reactors: 24 ---------------------------------- Reqs/sec: 336000 User CPU per req: 11.0189us Sys CPU per req: 13.6012us Ctx Sw. per req: 1.48036 With change: Mode: Sync Client threads: 24 Worker threads: 40 Server reactors: 24 ---------------------------------- Reqs/sec: 373224 User CPU per req: 27.2511us Sys CPU per req: 35.9059us Ctx Sw. per req: 5.50983 Mode: Async Client reactors: 24 Call concurrency: 100 Worker threads: 40 Server reactors: 24 ---------------------------------- Reqs/sec: 768135 User CPU per req: 21.6902us Sys CPU per req: 25.3586us Ctx Sw. per req: 1.34386 Change-Id: I650738cc628bb6ad67348c40753d777c9b566d61 Reviewed-on: http://gerrit.cloudera.org:8080/2939 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo <[email protected]> --- M src/kudu/util/net/sockaddr.cc 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/2939 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I650738cc628bb6ad67348c40753d777c9b566d61 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Binglin Chang <[email protected]> Gerrit-Reviewer: Henry Robinson <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <[email protected]> Gerrit-Reviewer: Todd Lipcon <[email protected]>
