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]>

Reply via email to