5

我在Cassandra上收到以下警告- 这是什么意思?这是一个问题吗?我该如何解决这个问题?

WARN 15:32:06,772 无法锁定 JVM 内存 (ENOMEM)。这可能导致部分 JVM 被换出,尤其是在启用 mmapped I/O 的情况下。增加 RLIMIT_MEMLOCK 或以 root 身份运行 Cassandra。

WARN 15:33:20,860 MemoryMeter 未初始化(jamm 未指定为 java 代理);假设 liveRatio 为 10.0。通常这意味着 cassandra-env.sh 禁用了 jamm,因为您使用的是错误的 JRE;改为升级到 Sun JRE

我正在使用 Cassandra 1.1.2。

4

1 回答 1

8

ENOMEM 是Out Of Memory. Cassandra 已使用其所有虚拟内存,因此 JVM 无法从虚拟内存中锁定额外的内存资源。

Jamm(Java Agent for Memory Management) 提供了 MemoryMeter。我看到的是您没有安装 MemoryMeter 并将其设置为代理,因此 Cassandra 禁用了 MemoryMeter。此外,MemoryMeter 可能仅适用于Sun Oracle JRE,如果您希望 MemoryMeter 成功运行,Cassandra 更喜欢它。


要添加Jamm到 Java 代理,请将以下参数添加到 java 进程(示例):

-javaagent:bin/../lib/jamm-0.2.5.jar 

(其中路径是 jar 所在的路径)。

于 2012-07-31T12:59:51.540 回答