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

Reply via email to