Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Cassandra 1.2.3堆随着行数的增加而增加_Java_Cassandra_Heap - Fatal编程技术网

Java Cassandra 1.2.3堆随着行数的增加而增加

Java Cassandra 1.2.3堆随着行数的增加而增加,java,cassandra,heap,Java,Cassandra,Heap,随着密钥数量的增加,使用10GB RAM运行Cassandra 1.2.3会导致堆使用率不断增加。现在大约是8.3G,节点承受堆压力,导致超时 cfstats输出: Keyspace: profiles Read Count: 33775531 Read Latency: 11.160335890411316 ms. Write Count: 146030154 Write Latency: 0.03436538754180866 ms. Pending

随着密钥数量的增加,使用10GB RAM运行Cassandra 1.2.3会导致堆使用率不断增加。现在大约是8.3G,节点承受堆压力,导致超时

cfstats输出:

Keyspace: profiles
    Read Count: 33775531
    Read Latency: 11.160335890411316 ms.
    Write Count: 146030154
    Write Latency: 0.03436538754180866 ms.
    Pending Tasks: 0
        Column Family: profiles
        SSTable count: 12
        Space used (live): 161353987766
        Space used (total): 161604490499
        Number of Keys (estimate): 162628352
        Memtable Columns Count: 69256
        Memtable Data Size: 58138189
        Memtable Switch Count: 6844
        Read Count: 33775532
        Read Latency: 13.964 ms.
        Write Count: 146030157
        Write Latency: 0.032 ms.
        Pending Tasks: 0
        Bloom Filter False Positives: 2498002
        Bloom Filter False Ratio: 0.31157
        Bloom Filter Space Used: 110145928
        Compacted row minimum size: 30
        Compacted row maximum size: 73457
        Compacted row mean size: 3508
这里是堆转储

分析它并没有导致任何结果,只是假设存在内存泄漏,因为我看到了很多几乎为空的数组和映射


我很感谢你的想法。

听起来你在缓存数据,但你没有使用JNA(Java原生访问)。JNA允许Cassandra在堆外存储O(n)个数据结构(随着数据集大小而增长的数据结构),包括缓存。描述如何设置JNA。定义架构时,缓存设置是按照表/CF进行配置的。

调用显式gc后堆是否会下降?

这不是答案。明智地选择合适的答案和更合适的注释。为了得到答案,我们必须更加理解这个问题,最初的作者提到,堆随着行的增加而增加。对我来说,这似乎是显而易见的,因为memtable太大了,但是当memtable刷新到sstable时,堆应该被回收。GC将收回它。有一种可能性,堆在那里,但没有得到gced,它可能会被回收。如果堆持续时间较长,则不应担心其他问题。Prateek,你不应该劝阻人们不要问问题来获得正确答案。我希望这能澄清问题。
Prateek,你不应该劝阻人们不提问以获得正确答案。
我不是劝阻你提问,而是指出提问应该在评论中完成。这正是我们在SO中有注释选项的原因。当你想得到一个问题的澄清时,你应该添加一条评论并要求澄清,OP会编辑他的帖子以使其更容易理解。