Presumably you're on a 32-bit architecture (or at least a 32-bit JVM). 32-bit 
processes won't be able to address more than "X" amount of memory, where X 
would usually be >= 2GB, and < 4GB.

The reason you can't use a full 4GB is that part of the address space is 
necessarily reserved by the OS kernel. Exactly how much is reserved depends on 
the OS, version thereof, and/or configuration, but at least 0.5-1GB is usually 
a safe bet, so the behavior you see is exactly as expected.

If your hardware is 64-bit, make sure you're running a 64-bit OS and a 64-bit 
JVM. If you're stuck on 32-bit hardware that just happens to have lots of RAM, 
you could run multiple Cassandra instances on each box..

-NK


On Oct 28, 2010, at 10:04 AM, JKnight JKnight wrote:

> Hi all, 
> 
> When I config Maximum heap size -Xmx4G, the memory will consume to 3.5G. When 
> I call Perform GC (jconsole), the used memory reduce to 1G. 
> 
> When I config Maximum heap size -Xmx2G, Cassandra system run well. 
> 
> Is that Casandra problem? 
> I want Cassandra use memory more effective. How can I do that?
> 
> Thank a lot for support. 
> -- 
> Best regards,
> JKnight

Reply via email to