Hello list !

I have a question about cassandra memory usage.

My cassandra nodes are slowly using up all my ram until they get OOM-Killed.

When I check the memory usage with nodetool info the memory
(off-heap+heap) doesn't match what the java process is really using.

I tried to use pmap to see what the jvm was doing with my ram and saw
a total coherent with what nodetool indicates.

The anon-rss for my java/cassandra process is sometimes 10G bigger
than the memory really used by the process. By really used I mean :
what I see with `free`, `ps` (RSS) or even dmesg  (anon-rss) after a
node get's OOM-killed.


nodetool info :
```
ID                     : 24103931-f89c-4d32-bdb8-a86ef0fefb1a
Gossip active          : true
Thrift active          : true
Native Transport active: true
Load                   : 1.84 TB
Generation No          : 1530695693
Uptime (seconds)       : 1313453
Heap Memory (MB)       : 8851.83 / 12288.00
Off Heap Memory (MB)   : 7356.09
Data Center            : europe-west1
Rack                   : b
Exceptions             : 4
Key Cache              : entries 8221, size 99.79 MB, capacity 100 MB,
147132654 hits, 236018776 requests, 0.623 recent hit rate, 14400 save
period in seconds
Row Cache              : entries 0, size 0 bytes, capacity 0 bytes, 0
hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache          : entries 362366, size 50 MB, capacity 50 MB,
1131153067 hits, 3863836484 requests, 0.293 recent hit rate, 7200 save
period in seconds
Token                  : (invoke with -T/--tokens to see all 256 tokens)

```

ps output : ```
cassand+ 24546  229 88.8 160765368 27432784 ?  SLl  Jul04 50236:43
java -Xloggc:/var/log/cassandra/gc.log -XX:+UseG1GC
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:MaxGCPauseMillis=500
-XX:InitiatingHeapOccupancyPercent=70 -XX:+PrintGCDetails
-XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
-XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime
-XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
-XX:+ExitOnOutOfMemoryError -Xms12G -Xmx12G -ea -Xss256k
-XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:StringTableSize=1000003
-XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem
-XX:CompileCommandFile=/etc/cassandra/hotspot_compiler
-javaagent:/usr/share/cassandra/lib/jamm-0.3.0.jar
-XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42
-XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true
-Dcom.sun.management.jmxremote.port=7199
-Dcom.sun.management.jmxremote.rmi.port=7199
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password
-Djava.library.path=/usr/share/cassandra/lib/sigar-bin
-Dlogback.configurationFile=logback.xml
-Dcassandra.logdir=/var/log/cassandra
-Dcassandra.storagedir=/var/lib/cassandra
-Dcassandra-pidfile=/var/run/cassandra/cassandra.pid -cp
/etc/cassandra:/usr/share/cassandra/lib/ST4-4.0.8.jar:/usr/share/cassandra/lib/airline-0.6.jar:/usr/share/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/share/cassandra/lib/asm-5.0.4.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang3-3.1.jar:/usr/share/cassandra/lib/commons-math3-3.2.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.4.jar:/usr/share/cassandra/lib/disruptor-3.0.1.jar:/usr/share/cassandra/lib/ecj-4.4.2.jar:/usr/share/cassandra/lib/guava-18.0.jar:/usr/share/cassandra/lib/high-scale-lib-1.0.6.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.3.0.jar:/usr/share/cassandra/lib/javax.inject.jar:/usr/share/cassandra/lib/jbcrypt-0.3m.jar:/usr/share/cassandra/lib/jcl-over-slf4j-1.7.7.jar:/usr/share/cassandra/lib/jna-4.2.2.jar:/usr/share/cassandra/lib/joda-time-2.4.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/jstackjunit-0.0.1.jar:/usr/share/cassandra/lib/libthrift-0.9.2.jar:/usr/share/cassandra/lib/log4j-over-slf4j-1.7.7.jar:/usr/share/cassandra/lib/logback-classic-1.1.3.jar:/usr/share/cassandra/lib/logback-core-1.1.3.jar:/usr/share/cassandra/lib/lz4-1.3.0.jar:/usr/share/cassandra/lib/metrics-core-3.1.0.jar:/usr/share/cassandra/lib/metrics-jvm-3.1.0.jar:/usr/share/cassandra/lib/metrics-logback-3.1.0.jar:/usr/share/cassandra/lib/netty-all-4.0.44.Final.jar:/usr/share/cassandra/lib/ohc-core-0.4.3.jar:/usr/share/cassandra/lib/ohc-core-j8-0.4.3.jar:/usr/share/cassandra/lib/reporter-config-base-3.0.0.jar:/usr/share/cassandra/lib/reporter-config3-3.0.0.jar:/usr/share/cassandra/lib/sigar-1.6.4.jar:/usr/share/cassandra/lib/slf4j-api-1.7.7.jar:/usr/share/cassandra/lib/snakeyaml-1.11.jar:/usr/share/cassandra/lib/snappy-java-1.1.1.7.jar:/usr/share/cassandra/lib/stream-2.5.2.jar:/usr/share/cassandra/lib/thrift-server-0.3.7.jar:/usr/share/cassandra/apache-cassandra-3.0.16.jar:/usr/share/cassandra/apache-cassandra-thrift-3.0.16.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:
-XX:HeapDumpPath=/var/lib/cassandra/java_1530694780.hprof
-XX:ErrorFile=/var/lib/cassandra/hs_err_1530694780.log
org.apache.cassandra.service.CassandraDaemon
```

oom-kill output :
```
[Thu Jul 19 11:17:37 2018] Out of memory: Kill process 5433 (java)
score 960 or sacrifice child
[Thu Jul 19 11:17:37 2018] Killed process 5433 (java)
total-vm:196334436kB, anon-rss:29361348kB, file-rss:0kB, shmem-rss:0kB
```

pmap | tail -n 1 :
```
total        161041000K
```

We are using cassandra 3.0.16 on Debian stretch with oracle-java :
```
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
```

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
For additional commands, e-mail: user-h...@cassandra.apache.org

Reply via email to