> each node has 256G of memory, 24x1T drives, 2x Xeon CPU

I don't have first hand experience running Cassandra on such massive
hardware, but it strikes me that these machines are dramatically oversized
to be good candidates for Cassandra (though I wonder how many cores are in
those CPUs; I'm guessing closer to 18 than 2 based on the other hardware).

A larger cluster of smaller hardware would be a much better shape for
Cassandra.  Or several clusters of smaller hardware since you're running
multiple instances on this hardware - best practices have one instance per
host no matter the hardware size.

On Thu, Feb 12, 2015 at 12:36 AM, Jiri Horky <ho...@avast.com> wrote:

>  Hi Chris,
>
> On 02/09/2015 04:22 PM, Chris Lohfink wrote:
>
>   - number of tombstones - how can I reliably find it out?
>  https://github.com/spotify/cassandra-opstools
>  https://github.com/cloudian/support-tools
>
> thanks.
>
>
>  If not getting much compression it may be worth trying to disable it, it
> may contribute but its very unlikely that its the cause of the gc pressure
> itself.
>
>  7000 sstables but STCS? Sounds like compactions couldn't keep up.  Do
> you have a lot of pending compactions (nodetool)?  You may want to increase
> your compaction throughput (nodetool) to see if you can catch up a little,
> it would cause a lot of heap overhead to do reads with that many.  May even
> need to take more drastic measures if it cant catch back up.
>
> I am sorry, I was wrong. We actually do use LCS (the switch was done
> recently). There are almost none pending compaction. We have increased the
> size sstable to 768M, so it should help as as well.
>
>
>  May also be good to check `nodetool cfstats` for very wide partitions.
>
> There are basically none, this is fine.
>
> It seems that the problem really comes from having so much data in so many
> sstables, so org.apache.cassandra.io.compress.CompressedRandomAccessReader
> classes consumes more memory than 0.75*HEAP_SIZE, which triggers the CMS
> over and over.
>
> We have turned off the compression and so far, the situation seems to be
> fine.
>
> Cheers
> Jirka H.
>
>
>
>  Theres a good chance if under load and you have over 8gb heap your GCs
> could use tuning.  The bigger the nodes the more manual tweaking it will
> require to get the most out of them
> https://issues.apache.org/jira/browse/CASSANDRA-8150 also has some ideas.
>
>  Chris
>
> On Mon, Feb 9, 2015 at 2:00 AM, Jiri Horky <ho...@avast.com> wrote:
>
>>  Hi all,
>>
>> thank you all for the info.
>>
>> To answer the questions:
>>  - we have 2 DCs with 5 nodes in each, each node has 256G of memory,
>> 24x1T drives, 2x Xeon CPU - there are multiple cassandra instances running
>> for different project. The node itself is powerful enough.
>>  - there 2 keyspaces, one with 3 replicas per DC, one with 1 replica per
>> DC (because of amount of data and because it serves more or less like a
>> cache)
>>  - there are about 4k/s Request-response, 3k/s Read and 2k/s Mutation
>> requests  - numbers are sum of all nodes
>>  - we us STCS (LCS would be quite IO have for this amount of data)
>>  - number of tombstones - how can I reliably find it out?
>>  - the biggest CF (3.6T per node) has 7000 sstables
>>
>> Now, I understand that the best practice for Cassandra is to run "with
>> the minimum size of heap which is enough" which for this case we thought is
>> about 12G - there is always 8G consumbed by the SSTable readers. Also, I
>> though that high number of tombstones create pressure in the new space
>> (which can then cause pressure in old space as well), but this is not what
>> we are seeing. We see continuous GC activity in Old generation only.
>>
>> Also, I noticed that the biggest CF has Compression factor of 0.99 which
>> basically means that the data come compressed already. Do you think that
>> turning off the compression should help with memory consumption?
>>
>> Also, I think that tuning CMSInitiatingOccupancyFraction=75 might help
>> here, as it seems that 8G is something that Cassandra needs for bookkeeping
>> this amount of data and that this was sligtly above the 75% limit which
>> triggered the CMS again and again.
>>
>> I will definitely have a look at the presentation.
>>
>> Regards
>> Jiri Horky
>>
>>
>> On 02/08/2015 10:32 PM, Mark Reddy wrote:
>>
>> Hey Jiri,
>>
>>  While I don't have any experience running 4TB nodes (yet), I would
>> recommend taking a look at a presentation by Arron Morton on large nodes:
>> http://planetcassandra.org/blog/cassandra-community-webinar-videoslides-large-nodes-with-cassandra-by-aaron-morton/
>> to see if you can glean anything from that.
>>
>>  I would note that at the start of his talk he mentions that in version
>> 1.2 we can now talk about nodes around 1 - 3 TB in size, so if you are
>> storing anything more than that you are getting into very specialised use
>> cases.
>>
>>  If you could provide us with some more information about your cluster
>> setup (No. of CFs, read/write patterns, do you delete / update often, etc.)
>> that may help in getting you to a better place.
>>
>>
>>  Regards,
>> Mark
>>
>> On 8 February 2015 at 21:10, Kevin Burton <bur...@spinn3r.com> wrote:
>>
>>> Do you have a lot of individual tables?  Or lots of small compactions?
>>>
>>>  I think the general consensus is that (at least for Cassandra), 8GB
>>> heaps are ideal.
>>>
>>>  If you have lots of small tables it’s a known anti-pattern (I believe)
>>> because the Cassandra internals could do a better job on handling the in
>>> memory metadata representation.
>>>
>>>  I think this has been improved in 2.0 and 2.1 though so the fact that
>>> you’re on 1.2.18 could exasperate the issue.  You might want to consider an
>>> upgrade (though that has its own issues as well).
>>>
>>> On Sun, Feb 8, 2015 at 12:44 PM, Jiri Horky <ho...@avast.com> wrote:
>>>
>>>> Hi all,
>>>>
>>>> we are seeing quite high GC pressure (in old space by CMS GC Algorithm)
>>>> on a node with 4TB of data. It runs C* 1.2.18 with 12G of heap memory
>>>> (2G for new space). The node runs fine for couple of days when the GC
>>>> activity starts to raise and reaches about 15% of the C* activity which
>>>> causes dropped messages and other problems.
>>>>
>>>> Taking a look at heap dump, there is about 8G used by SSTableReader
>>>> classes in
>>>> org.apache.cassandra.io.compress.CompressedRandomAccessReader.
>>>>
>>>> Is this something expected and we have just reached the limit of how
>>>> many data a single Cassandra instance can handle or it is possible to
>>>> tune it better?
>>>>
>>>> Regards
>>>> Jiri Horky
>>>>
>>>
>>>
>>>
>>>   --
>>>   Founder/CEO Spinn3r.com
>>>  Location: *San Francisco, CA*
>>>  blog: http://burtonator.wordpress.com
>>> … or check out my Google+ profile
>>> <https://plus.google.com/102718274791889610666/posts>
>>>  <http://spinn3r.com>
>>>
>>
>>
>>
>
>

Reply via email to