它是使用堆内存还是剩余的服务器内存?
我有一台32 GB RAM的服务器,我使用25 GB MAX_HEAP_SIZE初始化了Cassandra,并指定了20 GB的行缓存容量。
我是否正确地假设行缓存使用堆内存我初始化了进程?或者我的配置是否期望服务器至少有45 GB的内存?
答案 0 :(得分:3)
This row key documentation表示有两个实际的row_cache_provider实现:
SerializingCacheProvider:序列化行的内容和 将其存储在本机内存中,即关闭JVM堆
和
ConcurrentLinkedHashCacheProvider:使用JVM堆缓存行 , 提供与0.8之前的Cassandra版本相同的行缓存行为。
默认为 SerializingCacheProvider ,因此如果您不更改它,行缓存不会使用JVM堆内存。
答案 1 :(得分:0)
查看源代码,行缓存是一个ICache
,根据它作为一个对象放在堆上而无需特殊处理。
您可以执行进一步的测试以确定真实的性能和内存处理。