I have been through tuning for GC and OOM recently. If you can provide the
cassandra.yaml, I can help. Mostly I had to play with memtable thresholds.

Thanks,
Naren

On Fri, Mar 4, 2011 at 12:43 PM, Mark <static.void....@gmail.com> wrote:

> We have 7 column families and we are not using the default key cache
> (200000).
>
> These were our initial settings so it was not in response to anything.
> Would you recommend anything else? Thanks
>
>
>
> On 3/4/11 12:34 PM, Chris Burroughs wrote:
>
>> - Are you using a key cache?  How many keys do you have?  Across how
>> many column families
>>
>> You configuration is unusual both in terms of not setting min heap ==
>> max heap and the percentage of available RAM used for the heap.  Did you
>> change the heap size in response to errors or for another reason?
>>
>> On 03/04/2011 03:25 PM, Mark wrote:
>>
>>> This happens during compaction and we are not using the RowsCached
>>> attribute.
>>>
>>> Our initial/max heap are 2 and 6 respectively and we have 8 gigs in
>>> these machines.
>>>
>>> Thanks
>>>
>>> On 3/4/11 12:05 PM, Chris Burroughs wrote:
>>>
>>>> - Does this occur only during compaction or at seemingly random times?
>>>> - How large is your heap?  What jvm settings are you using? How much
>>>> physical RAM do you have?
>>>> - Do you have the row and/or key cache enabled?  How are they
>>>> configured?  How large are they when the OOM is thrown?
>>>>
>>>> On 03/04/2011 02:38 PM, Mark Miller wrote:
>>>>
>>>>> Other than adding more memory to the machine is there a way to solve
>>>>> this? Please help. Thanks
>>>>>
>>>>> ERROR [COMPACTION-POOL:1] 2011-03-04 11:11:44,891 CassandraDaemon.java
>>>>> (line org.apache.cassandra.thrift.CassandraDaemon$1) Uncaught exception
>>>>> in thread Thread[COMPACTION-POOL:1,5,main]
>>>>> java.lang.OutOfMemoryError: Java heap space
>>>>>      at java.util.Arrays.copyOf(Arrays.java:2798)
>>>>>      at
>>>>> java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:111)
>>>>>      at java.io.DataOutputStream.write(DataOutputStream.java:107)
>>>>>      at java.io.FilterOutputStream.write(FilterOutputStream.java:97)
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.utils.FBUtilities.writeByteArray(FBUtilities.java:298)
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.ColumnSerializer.serialize(ColumnSerializer.java:66)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.SuperColumnSerializer.serialize(SuperColumn.java:311)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.SuperColumnSerializer.serialize(SuperColumn.java:284)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.ColumnFamilySerializer.serializeForSSTable(ColumnFamilySerializer.java:87)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.ColumnFamilySerializer.serializeWithIndexes(ColumnFamilySerializer.java:99)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:140)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:135)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:130)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:294)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:101)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:82)
>>>>>
>>>>>      at
>>>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>>>      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>>>      at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>>>>>
>>>>>
>>>>>      at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>>>>>
>>>>>
>>>>>      at java.lang.Thread.run(Thread.java:636)
>>>>>
>>>>>

Reply via email to