BK currently isn't wired to stream bytes to a ledger, so writing synchronously 
large entries as you're doing is likely not to get the best its performance. A 
couple of things you could try to get higher performance are to write 
asynchronously and to have multiple clients writing. 
-Flavio
 


     On Wednesday, June 10, 2015 12:08 PM, Maciej Smoleński <[email protected]> 
wrote:
   
 

 Hello,

I'm testing BK performance when appending 100K entries synchronously from 1 
thread (using one ledger).
The performance I get is 250 entries/s.

What performance should I expect ?

My setup:

Ledger:
Ensemble size: 3
Quorum size: 2

1 client machine and 3 server machines.

Network:
Each machine with bonding: 4 x 1000Mbps on each machine
manually tested between client and server: 400MB/s

Disk:
I tested two configurations:
dedicated disks with ext3 (different for zookeeper, journal, data, index, log)
dedicated ramfs partitions (different for zookeeper, journal, data, index, log)

In both configurations the performance is the same: 250 entries / s (25MB / s).
I confirmed this with measured network bandwidth:
- on client 50 MB/s
- on server 17 MB/s

I run java with profiler enabled on BK client and BK server but didn't find 
anything unexpected (but I don't know bookkeeper internals).

I tested it with two BookKeeper versions:
- 4.3.0
- 4.2.2
The result were the same with both BookKeeper versions.

What should be changed/checked to get better performance ?

Kind regards,
Maciej





 




 
  

Reply via email to