Hello,
I'm comparing Crail to iperf. VM-A is used to run the server(s). VM-B is
used to run the client. Both VMs are CentOS 7 with 8 GB memory + 2 CPUs.
Tests runs are non-overlapping.
For the Crail case , a 1 GB file is posted to server and a simple Java
client is employed (see below).
Results:
iperf: 4.05 Gb/seb
Crail: 2.52 Gb/sec
Why is iperf so much better??
Lou.
-----
Crail Java Client:
public static void main(String[] args) {
try {
//initialize
String filename = "/G1.txt";
int filesize = 1024*1024*1024;
int bufsize = 1024*1024;
CrailBuffer buf = OffHeapBuffer.wrap(ByteBuffer.allocateDirect(bufsize));
CrailConfiguration cconf = CrailConfiguration.createConfigurationFromFile();
CrailStore cstore = CrailStore.newInstance(cconf);
CrailFile file = cstore.lookup(filename).get().asFile();
CrailInputStream directStream =
file.getDirectInputStream(file.getCapacity());
long sumbytes = 0;
//run test
long start = System.currentTimeMillis();
while (sumbytes < filesize) {
buf.clear();
CrailResult cr = directStream.read(buf).get();
long ret = cr.getLen();
sumbytes = sumbytes + ret;
}
long end = System.currentTimeMillis();
//print result and clean-up
double executionTime = ((double) (end - start)) / 1000.0;
System.out.println("time: "+executionTime);
cstore.close();
directStream.close();
}
catch(Exception e) {
e.printStackTrace();
}
}