Hi Lou

There is no direct memory copy, the transfer goes over TCP, even when processes 
exevute on the same VM. So this means that the whole processing including 
datatransfer is performed by the CPU.

So I would expect the high CPU load while transferring data.


Best
Adrian

Am 27. Februar 2020 15:32:43 MEZ schrieb Lou DeGenaro <lou.degen...@gmail.com>:
>Hi Adrian,
>
>client + namenode + datanode are all in same VM running in cloud.  I
>think
>I'm using TCP, but I'm a new here, so not sure.  Is there is another
>way
>that Crail does the data xfer memory-to-memory on same VM?
>
>The loop has nothing to do except wait for data xfer, so I would have
>expected CPU usage to be close to zero...no?
>
>execution time 1.048 (sec) to xfer 1GB, with CPU use > 100%
>
>crail-site.conf
>crail.namenode.address            crail://sgt-pepper:9060
>crail.cachepath                   /tmp/hugepages/cache
>crail.cachelimit                  1073741824
>crail.storage.tcp.interface       eth0
>crail.storage.tcp.datapath        /tmp/hugepages/data
>crail.storage.tcp.storagelimit    1073741824
>
>Lou.
>
>On Thu, Feb 27, 2020 at 9:15 AM Adrian Schuepbach <
>adrian.schuepb...@gribex.net> wrote:
>
>> Hi Lou
>>
>> I guess executing the loop consumes the cpu time.
>>
>> I assume your  client + namenode + datanodes are connected by TCP.
>> So when you execute a tight loop I think it is normal to consume
>100%.
>>
>> Thanks
>> Adrian
>>
>>
>> On 2/27/20 15:08, Lou DeGenaro wrote:
>> > I have a simple loop in my Crail java client to fetch the contents
>of a
>> 1GB
>> > file like so:
>> >
>> > private CrailBuffer buf = null;
>> > int bufsize = 1024*1024;
>> > int filesize = 1024*1024*1024;
>> > ...
>> > buf = OffHeapBuffer.wrap(ByteBuffer.allocateDirect(bufsize));
>> > long sumbytes = 0;
>> > while (sumbytes < filesize) {
>> >    buf.clear();
>> >    CrailResult cr = directStream.read(buf).get();
>> >    long ret = cr.getLen();
>> >    sumbytes = sumbytes + ret;
>> > }
>> >
>> > The namenode, datanode, and my java client are all running in the
>same
>> > cloud VM.  When running, 100% (and more) CPU is consumed by my java
>> app.  I
>> > was expecting something close to zero.  Why so much CPU?  A
>consequence
>> of
>> > running in a VM or am I doing something wrong?
>> >
>> > Lou.
>> >
>> --
>> Adrian Schüpbach, Dr. sc. ETH Zürich
>>
>>

Reply via email to