cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Павел Сапежко <>
Subject Understanding an off-heap memory allocation
Date Tue, 13 Jun 2017 11:00:45 GMT
Hi! We use cassandra inside kubernetes cluster. Now I try to find out how
cassandra uses off-heap memory. Currently we have 10 GB heap, and 21GB
memory limit(k8s limit) per cassandra node. So in attach you can find our
cassandra.yaml, k8s statefulset, jvm.options and results of execution some
tools like jcmd, output of /proc/<pid>/stats, jolokia responses and start
logs of cassandra node.

So now I have several questions.

   1. What does it mean "internal" memory in native_memory output?
   2. Why in detailed jcmd native_memory ouput I see the next lines? For
   what cassandra uses so much off-heap memory(allocated as one big chunk)?
                [0x00007f925a29fff3] Unsafe_AllocateMemory+0xc3
                                (malloc=1790102KB #628)
   3. Why some java thread(as you can see in native memory output) use
   1028KB stack, although I used -Xss256K JVM option?
   4. Why after disabling mmap(disk_access_mode property in cassandra.yaml)
   cassandra still use mmap as can be see in properly jolokia response in
   5. For what cassandra uses direct ByteBuffer pools and can I somehow
   controlled it(set some limits)?

Some environment details.
As I sad above, we use cassandra inside k8s cluster. As storage we use rbd
from ceph pool based on ssd disks. We run cassandra on Oracle JVM version
8_131 inside docker, of cause. Cassandra version - latest LTS 3.0.13

С уважением,

Павел Сапежко

skype: p.sapezhko

View raw message