Thanks for you prompt response. Please see follow up questions below
Thanks!!!


*Tamar Fraenkel *
Senior Software Engineer, TOK Media

[image: Inline image 1]

ta...@tok-media.com
Tel:   +972 2 6409736
Mob:  +972 54 8356490
Fax:   +972 2 5612956





On Tue, Aug 21, 2012 at 12:57 PM, Alain RODRIGUEZ <arodr...@gmail.com>wrote:

> I have the same configuration and I recently change  my cassandra-sh.yaml
> to :
>
> MAX_HEAP_SIZE="4G"
> HEAP_NEWSIZE="200M"
>

> I guess it depends on how much you use the cache (which is now in the
> off-heap memory).
>

 you mean that key cache is not in heap? I am using cassandra 1.0.8 and I
was under the expression it was, see
http://www.datastax.com/docs/1.0/operations/tuning, Tuning Java Heap Size.
 I thought that key-cache-size + 1GB + memtable space should not exceed
heap size. Am I wrong?


> I don't use row cache and use the default key cache size.
>
Me too, I have Key Cache capacity of 200000 for all my CFs. Currently if my
calculations are correct I have about 1.4GB of key cache.

>
> I have no more memory pressure nor OOM.
>
I don't see OOM, but I do see messages like the following in my logs:
INFO [ScheduledTasks:1] 2012-08-20 12:31:46,506 GCInspector.java (line 122)
GC for ParNew: 219 ms for 1 collections, 1491982816 used; max is 1937768448
 WARN [ScheduledTasks:1] 2012-08-20 12:31:46,506 GCInspector.java (line
145) Heap is 0.7704251937535934 full.  You may need to reduce memtable
and/or cache sizes.  Cassandra will now flush up to the two largest
memtables to free up memory.  Adjust flush_largest_memtables_at threshold
in cassandra.yaml if you don't want Cassandra to do this automatically



> I think that if your off-heap memory is unused, it's better enlarging the
> heap (with a max limit of 8GB)
>
> How do I know if my off-heap memory is not used?


> Hope this will help.
>
> Alain
>
> 2012/8/21 Tamar Fraenkel <ta...@tok-media.com>
>
>> Hi!
>> I have a question regarding Cassandra heap size.
>> Cassandra calculates heap size in cassandra-env.sh according to the
>> following algorythm
>>     # set max heap size based on the following
>>     # max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
>>     # calculate 1/2 ram and cap to 1024MB
>>     # calculate 1/4 ram and cap to 8192MB
>>     # pick the max
>>
>> So, for
>> system_memory_in_mb=7468
>> half_system_memory_in_mb=3734
>> quarter_system_memory_in_mb=1867
>> This will result in
>> max(min(3734,1024), min(1867,8000)) = max(1024,1867)=*1867MB* or in
>> other words 1/4 of RAM.
>>
>> In http://www.datastax.com/docs/1.0/operations/tuning it says: "Cassandra's
>> default configuration opens the JVM with a heap size of 1/4 of the
>> available system memory (or a minimum 1GB and maximum of 8GB for systems
>> with a very low or very high amount of RAM). Heapspace should be a minimum
>> of 1/2 of your RAM, but a maximum of 8GB. The vast majority of deployments
>> do not benefit from larger heap sizes because (in most cases) the ability
>> of Java 6 to gracefully handle garbage collection above 8GB quickly
>> diminishes."
>> *If I understand this correctly, this means it is better if my heap size
>> will be 1/2 of RAM, 3734MB.*
>> I am running on EC2 m1.large instance (7.5 GB memory, 4 EC2 Compute
>> Units (2 virtual cores with 2 EC2 Compute Units each)).
>> My system seems to be suffering from lack of memory, and I should
>> probably increase heap or (and?) reduce key cache size.
>>
>> Would you recommend changing the heap to half RAM?
>>
>> If yes, should I hard-code it in acassandra-env.sh?
>>
>> Thanks!
>>
>> *Tamar Fraenkel *
>> Senior Software Engineer, TOK Media
>>
>> [image: Inline image 1]
>>
>> ta...@tok-media.com
>> Tel:   +972 2 6409736
>> Mob:  +972 54 8356490
>> Fax:   +972 2 5612956
>>
>>
>>
>>
>

<<tokLogo.png>>

<<tokLogo.png>>

Reply via email to