clusterperf on TCP

Command Line (verbose mode)

$scripts/clusterperf.py -v --transport=tcp basic

Result:

 

ensureServers command: /home/satoshi/work/ramcloud/obj.master/ensureServers -C tcp:host=192.168.1.101,port=12246 -m 0 -b 0 -l 1 --wait 30 --logFile logs/20140326192450/ensureServers.log
Coordinator started on rc01 at tcp:host=192.168.1.101,port=12246
Coordinator command line arguments  /home/satoshi/work/ramcloud/obj.master/coordinator -C tcp:host=192.168.1.101,port=12246 -l NOTICE --logFile logs/20140326192450/coordinator.rc01.log 
Server started on rc01 at tcp:host=192.168.1.101,port=12247:  /home/satoshi/work/ramcloud/obj.master/server -C tcp:host=192.168.1.101,port=12246 -L tcp:host=192.168.1.101,port=12247 -r 3 -l NOTICE --clusterName __unnamed__ --logFile logs/20140326192450/server0.rc01.log -d  -f /dev/sda2
Server started on rc02 at tcp:host=192.168.1.102,port=12247:  /home/satoshi/work/ramcloud/obj.master/server -C tcp:host=192.168.1.101,port=12246 -L tcp:host=192.168.1.102,port=12247 -r 3 -l NOTICE --clusterName __unnamed__ --logFile logs/20140326192450/server1.rc02.log -d  -f /dev/sda2
Server started on rc03 at tcp:host=192.168.1.103,port=12247:  /home/satoshi/work/ramcloud/obj.master/server -C tcp:host=192.168.1.101,port=12246 -L tcp:host=192.168.1.103,port=12247 -r 3 -l NOTICE --clusterName __unnamed__ --logFile logs/20140326192450/server2.rc03.log -d  -f /dev/sda2
Server started on rc04 at tcp:host=192.168.1.104,port=12247:  /home/satoshi/work/ramcloud/obj.master/server -C tcp:host=192.168.1.101,port=12246 -L tcp:host=192.168.1.104,port=12247 -r 3 -l NOTICE --clusterName __unnamed__ --logFile logs/20140326192450/server3.rc04.log -d  -f /dev/sda2
ensureServers command: /home/satoshi/work/ramcloud/obj.master/ensureServers -C tcp:host=192.168.1.101,port=12246 -m 4 -b 4 -l 1 --wait 30 --logFile logs/20140326192450/ensureServers.log
All servers running
Client 0 started on rc01:  /home/satoshi/work/ramcloud/obj.master/ClusterPerf -C tcp:host=192.168.1.101,port=12246 --numClients 1 --clientIndex 0 --logFile logs/20140326192450/client0.rc01.log --size 100 basic

basic.read100         34.8 us     read single 100B object with 30B key
basic.readBw100        2.7 MB/s   bandwidth reading 100B object with 30B key
basic.read1K          32.1 us     read single 1KB object with 30B key
basic.readBw1K        29.7 MB/s   bandwidth reading 1KB object with 30B key
basic.read10K         39.5 us     read single 10KB object with 30B key
basic.readBw10K      241.5 MB/s   bandwidth reading 10KB object with 30B key
basic.read100K       112.5 us     read single 100KB object with 30B key
basic.readBw100K     848.0 MB/s   bandwidth reading 100KB object with 30B key
basic.read1M         585.3 us     read single 1MB object with 30B key
basic.readBw1M         1.6 GB/s   bandwidth reading 1MB object with 30B key
basic.write100        83.9 us     write single 100B object with 30B key
basic.writeBw100       1.1 MB/s   bandwidth writing 100B object with 30B key
basic.write1K         93.2 us     write single 1KB object with 30B key
basic.writeBw1K       10.2 MB/s   bandwidth writing 1KB object with 30B key
basic.write10K       145.0 us     write single 10KB object with 30B key
basic.writeBw10K      65.8 MB/s   bandwidth writing 10KB object with 30B key
basic.write100K      369.2 us     write single 100KB object with 30B key
basic.writeBw100K    258.3 MB/s   bandwidth writing 100KB object with 30B key
basic.write1M          3.2 ms     write single 1MB object with 30B key
basic.writeBw1M      301.9 MB/s   bandwidth writing 1MB object with 30B key

 

 

Process configuration:

Minimum configuration requires four servers.


New clusterperf.py / cluster.py option:

Disabling entity collocation on a server: –disjunt
 

1. Minimum configuration with three servers without backup

Command line and performance:

$scripts/clusterperf.py --verbose --transport=tcp --clients=1 --servers=1 --numBackups=0 --replicas=0 --disjunct basic

26.1 us     read single 100B object with 30B key 

28.1 us     write single 100B object with 30B key

RAMCloud evaluation with single server:

This result means that we can test RAMCloud on a single server without disjunct option:

$scripts/clusterperf.py  --transport=tcp --clients=1 --servers=1 --numBackups=0 --replicas=0 basic

2. Configuration with four servers with backup: 


Command line and performance:

scripts/clusterperf.py --verbose --transport=tcp --clients=1 --servers=2 --numBackups=1 --replicas=1 --disjunct basic

24.0 us      read single 100B object with 30B key

102.1 us     write single 100B object with 30B key