You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Nikolai Grigoriev (JIRA)" <ji...@apache.org> on 2014/09/18 21:04:34 UTC

[jira] [Commented] (CASSANDRA-7956) "nodetool compactionhistory" crashes because of low heap size (GC overhead limit exceeded)

    [ https://issues.apache.org/jira/browse/CASSANDRA-7956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14139342#comment-14139342 ] 

Nikolai Grigoriev commented on CASSANDRA-7956:
----------------------------------------------

I think that setting is not effective for "nodetool status" because of the GC settings. I have seen it before in other apps that the default GC settings may be very ineffective. Mostly it was due to the parallel GC not being enabled. Maybe trying to put "-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled" would be enough. Although, of course, in that case nodetool will use more CPU resources.



> "nodetool compactionhistory" crashes because of low heap size (GC overhead limit exceeded)
> ------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7956
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7956
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Cassandra 2.0.8
>            Reporter: Nikolai Grigoriev
>            Priority: Trivial
>             Fix For: 2.0.11
>
>         Attachments: 7956.txt, nodetool_compactionhistory_128m_heap_output.txt.gz
>
>
> {code}
> ]# nodetool compactionhistory
> Compaction History:
> Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
>         at java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:967)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1782)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>         at java.util.HashMap.readObject(HashMap.java:1180)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>         at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:500)
>         at javax.management.openmbean.TabularDataSupport.readObject(TabularDataSupport.java:912)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>         at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:174)
>         at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
>         at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)
>         at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:906)
>         at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:267)
>         at com.sun.proxy.$Proxy3.getCompactionHistory(Unknown Source)
> {code}
> nodetool starts with -Xmx32m. This seems to be not enough at least in my case to show the history. I am not sure what would the appropriate amount be but increasing it to 128m definitely solves the problem. Output from modified nodetool attached.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)