Hello Binglin Chang, Henry Robinson, Mike Percy, Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/2939
to look at the new patch set (#3).
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
---
M src/kudu/util/net/sockaddr.cc
1 file changed, 4 insertions(+), 3 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/39/2939/3
--
To view, visit http://gerrit.cloudera.org:8080/2939
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I650738cc628bb6ad67348c40753d777c9b566d61
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon <[email protected]>
Gerrit-Reviewer: Binglin Chang <[email protected]>
Gerrit-Reviewer: Henry Robinson <[email protected]>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <[email protected]>