1

它使用堆内存还是剩余的服务器内存?

我有一个具有 32 GB RAM 的服务器,我用 25 GB 的 MAX_HEAP_SIZE 初始化了 Cassandra,并指定了 20 GB 的行缓存容量。

我是否正确地假设行缓存使用了我初始化进程的堆内存?或者我的配置是否期望服务器至少有 45 GB 的内存?

4

2 回答 2

3

此行键文档指出有 2 个实际的 row_cache_provider 实现:

SerializingCacheProvider:将行的内容序列化并存储在本机内存中,即脱离JVM Heap

ConcurrentLinkedHashCacheProvider:使用 JVM heap缓存行,提供与 0.8 之前的 Cassandra 版本相同的行缓存行为。

默认为SerializingCacheProvider,因此如果您不更改它,行缓存不会使用 JVM 堆内存。

于 2013-07-26T14:48:07.207 回答
0

看源码,行缓存是一个ICache,它被放入堆中,因为它是一个没有特殊处理的对象。

您可以执行进一步的测试以确定真实的性能和内存处理。

于 2013-07-26T14:47:01.283 回答