Cassandra没有从ssttable读取数据

时间:2012-12-13 09:21:14

标签: io cassandra ycsb

使用YCSB并使用workloadc(读取100%)测试cassandra。 并且iostat始终显示为0。

配置:

数据是关于sdb,24G数据,8G堆大小,默认的memtable大小, 禁用行缓存和密钥缓存。

按照我的想法,统一请求会导致记忆错过,并在ssttable上查找数据, 所以数据目录iostat不应该为零。 8G堆的memtable如何存储所有24G数据?

有人遇到同样的问题吗?

2 个答案:

答案 0 :(得分:0)

这里没有什么神奇之处。您的请求工作量不能像您想象的那样随机。

我碰巧检查了YCSB的副本,而workloadc使用了requestdistribution = zipfian,这不是统一的。

答案 1 :(得分:0)

机器上的总内存是多少?如果你的机器上有32GB或更多的RAM,那么它也可能是操作系统页面缓存 - 这将超出Cassandra进程(例如不是堆)。在像这样的scenrios中,操作系统(假设它的linux)将最终缓存内存中的整个24GB并且你将获得很少的磁盘活动。