当Cassandra运行时几乎所有RAM都被消耗掉了,为什么?

时间:2017-06-21 12:59:17

标签: memory configuration cassandra

我有CentOS 6.8,Cassandra 3.9,32 GB RAM。当我启动Cassandra并且一旦启动它就开始消耗内存并开始添加' Cached'当我开始从CQLSH或Apache Spark查询时的内存值,在这个过程中,为cron执行等其他处理留下的内存更少。

以下是我系统的一些细节

free -m
         total       used       free     shared    buffers     cached
Mem:         32240      32003        237          0         41      24010
-/+ buffers/cache:       7950      24290
Swap:         2047         25       2022

这是top -M命令的输出

top - 08:54:39 up 5 days, 16:24,  4 users,  load average: 1.22, 1.20, 1.29
Tasks: 205 total,   2 running, 203 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.5%us,  1.2%sy, 19.8%ni, 75.3%id,  0.1%wa,  0.1%hi,  0.0%si,  0.0%st
Mem:    31.485G total,   31.271G used,  219.410M free,   42.289M buffers
Swap: 2047.996M total,   25.867M used, 2022.129M free,   23.461G cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14313 cassandr  20   0  595g  28g  22g S 144.5 91.3 300:56.34 java

您只能看到220 MB,并且缓存了23.46。

我的问题是如何配置Cassandra以便它可以使用“缓存”#39;内存到某个值,并为其他进程留出更多RAM。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在linux中一般的缓存内存,你的23g真的很好。这个内存用作文件系统缓存等等 - 而不是cassandra本身。 Linux系统倾向于使用所有可用内存。

这有助于以多种方式加速系统以防止磁盘读取。

你仍然可以使用缓存内存 - 只需启动进程并使用你的ram,内核将立即释放它。

答案 1 :(得分:0)

您可以在conf文件夹下的cassandra-env.sh中设置尺寸。这篇文章应该有帮助。 http://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html