Thanks Eric, but one doubt still left unclear is that when all the processes have there own memory limits then why is CentOS caching 21 GB. Is it expected to fill all available memory? And how does ACCUMULO_OTHER_OPTS helps in ingestion when I am using native memory maps?

On 12/15/2015 09:21 PM, Eric Newton wrote:
This is actually a client issue, and not related to the server or its performance.

The code sending updates to the server is spending so much time in java GC, that it has decided to kill itself.

You may want to increase the size of the JVM used for ingest, probably by using a larger value in ACCUMULO_OTHER_OPTS.
/*
*/"No Such SessionID" errors are typical of a paused client: update sessions time out and are forgotten. Your client ran low on memory, paused to GC, and the server forgot about its session.

-Eric

On Tue, Dec 15, 2015 at 7:45 AM, mohit.kaushik <mohit.kaus...@orkash.com <mailto:mohit.kaus...@orkash.com>> wrote:

    Dear All,

    I am getting the below mentioned exception on Client side while
    inserting data.

        *Exception in thread "Thrift Connection Pool Checker"
        java.lang.OutOfMemoryError: GC overhead limit exceeded*
        *ERROR - TabletServerBatchWriter.updateUnknownErrors(520) -
        Failed to send tablet server orkash1:9997 its batch : GC
        overhead limit exceeded*
        ***java.lang.OutOfMemoryError: GC overhead limit exceeded*
        ***ERROR - ClientCnxn$1.uncaughtException(414) -  from
        main-SendThread(orkash2:2181)*
        ***java.lang.OutOfMemoryError: GC overhead limit exceeded*


    This exception comes after few days of ingestion started. I
    already have assigned the appropriate memory to all components. I
    have a 3 node cluster with  Accumulo 1.7.0 and Hadoop 2.7.0 ( RAM
    32 GB each). Accumulo masters, namenodes runs on different servers.
    _*
    Accumulo-env.sh*_
    ACCUMULO_TSERVER_OPTS="${POLICY} -Xmx8g -Xms3g -XX:NewSize=500m
    -XX:MaxNewSize=500m "
    ACCUMULO_MASTER_OPTS="${POLICY} -Xmx1g -Xms1g"
    ACCUMULO_MONITOR_OPTS="${POLICY} -Xmx1g -Xms256m"
    ACCUMULO_GC_OPTS="-Xmx512m -Xms256m"
    ACCUMULO_GENERAL_OPTS="-XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3
    -XX:CMSInitiatingOccupancyFraction=75 -Djava.net.preferIPv4Stack=true"
    _*
    Accumulo-site.xml*_
      <property>
        <name>tserver.memory.maps.max</name>
        <value>2G</value>
      </property>
      <property>
    <name>tserver.memory.maps.native.enabled</name>
        <value>true</value>
      </property>
      <property>
        <name>tserver.cache.data.size</name>
        <value>2G</value>
      </property>
      <property>
        <name>tserver.cache.index.size</name>
        <value>1G</value>
      </property>
    <property>
        <name>tserver.sort.buffer.size</name>
        <value>500M</value>
      </property>
      <property>
        <name>tserver.walog.max.size</name>
        <value>1G</value>
      </property>


    I found that even after setting individual memory limits servers
    are utilizing its almost full memory(up to 21 GB cached). I am not
    running any other application on these server only Accumulo and
    Hadoop is deployed.  why the server caching a lot of data(21 GB)

    When I scanned the logs. I found another exception in Accumulo
    tserver logs

        /*org.apache.thrift.TException: No Such SessionID*/
        /**//*        at
        org.apache.accumulo.server.rpc.RpcWrapper$1.invoke(RpcWrapper.java:51)*/
        /**//*        at com.sun.proxy.$Proxy20.applyUpdates(Unknown
        Source)*/
        /**//*        at
        
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$applyUpdates.getResult(TabletClientService.java:2425)*/
        /**//*        at
        
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$applyUpdates.getResult(TabletClientService.java:2411)*/
        /**//*        at
        org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)*/
        /**//*        at
        org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)*/
        /**//*        at
        
org.apache.accumulo.server.rpc.TimedProcessor.process(TimedProcessor.java:63)*/
        /**//*        at
        
org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:516)*/
        /**//*        at
        
org.apache.accumulo.server.rpc.CustomNonBlockingServer$1.run(CustomNonBlockingServer.java:78)*/
        /**//*        at
        
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)*/
        /**//*        at
        
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)*/
        /**//*        at
        
org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)*/
        /**//*        at java.lang.Thread.run(Thread.java:745)*/

    //

    Thanks & Regards
    Mohit Kaushik

    **




--
Signature

*Mohit Kaushik*
Software Engineer
A Square,Plot No. 278, Udyog Vihar, Phase 2, Gurgaon 122016, India
*Tel:*+91 (124) 4969352 | *Fax:*+91 (124) 4033553

<http://politicomapper.orkash.com>interactive social intelligence at work...

<https://www.facebook.com/Orkash2012> <http://www.linkedin.com/company/orkash-services-private-limited> <https://twitter.com/Orkash> <http://www.orkash.com/blog/> <http://www.orkash.com>
<http://www.orkash.com> ... ensuring Assurance in complexity and uncertainty

/This message including the attachments, if any, is a confidential business communication. If you are not the intended recipient it may be unlawful for you to read, copy, distribute, disclose or otherwise use the information in this e-mail. If you have received it in error or are not the intended recipient, please destroy it and notify the sender immediately. Thank you /

Reply via email to