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