【发布时间】:2012-10-23 04:26:19
【问题描述】:
我想针对细行(5-50 列)的重读场景调整 Cassandra。这个想法是使用行缓存,并启用键缓存以防万一 - 当数据对于行缓存来说太大时。
我有双 Intel Xeon 服务器和 24GB RAM(3 个环形,两个数据中心 - 总共提供 6 台机器)
这些是我对默认配置所做的更改:
cassandra-env.sh
#JVM_OPTS="$JVM_OPTS -ea"
MAX_HEAP_SIZE="6G"
HEAP_NEWSIZE="500M"
cassandra.yaml
# do not persist caches to disk
key_cache_save_period: 0
row_cache_save_period: 0
key_cache_size_in_mb: 512
row_cache_size_in_mb: 14336
row_cache_provider: SerializingCacheProvider
将 6GB 专用于 Cassandra JVM,0.5GB 用于键缓存(在 6GB 堆中),14GB 用于作为堆外的行缓存。 操作系统仍然有 4GB 应该足够了,因为只运行一个 JVM 进程并且它应该有最大 2GB 的开销。
此设置是否最佳?有什么提示吗?
谢谢, 马切耶
【问题讨论】:
-
列是独立读取的,还是你总是读取一行的所有列?
-
那么,也许你可以将你的数据序列化到单列(如果不涉及索引),你会减少列数,节省空间和cpu功率。
-
@MaciejMiklas 是否存在堆外的密钥缓存?
-
不——不可能
标签: cassandra