我正在将Cassandra 1.2与新的MurMur3Partitioner一起用于centos。
在2节点群集上设置了num_tokens=256
我看到在用CQL3插入几百万行后,一个节点使用的内存比另一个节点多得多。
当我运行free
命令时
它显示第二个节点上的6GB使用率和种子节点上的1GB。
但是,在运行时
ps -e -o pid,vsz,comm= | sort -n -k 2
它显示了每个节点上使用大约6.8GB的java进程。
请注意,我有 MAX_HEAP_SIZE = “4GB” HEAP_NEWSIZE = “400M”
在每个节点上设置cassandra-env.sh
。
任何人都可以提供一些见解吗?
答案 0 :(得分:1)
这很可能与报告Linux中准确内存利用率的一般困难有关,特别是与Java进程有关。由于Java进程自动保留和分配内存,因此操作系统看到的内容可能会产生误导。了解Java进程正在做什么的最好方法是使用JMX来监视堆利用率。像VisualVM和jconsole这样的工具可以很好地工作。