使用YCSB并使用workloadc(读取100%)测试cassandra。 并且iostat始终显示为0。
配置:
数据是关于sdb,24G数据,8G堆大小,默认的memtable大小, 禁用行缓存和密钥缓存。
按照我的想法,统一请求会导致记忆错过,并在ssttable上查找数据, 所以数据目录iostat不应该为零。 8G堆的memtable如何存储所有24G数据?
有人遇到同样的问题吗?
答案 0 :(得分:0)
这里没有什么神奇之处。您的请求工作量不能像您想象的那样随机。
我碰巧检查了YCSB的副本,而workloadc使用了requestdistribution = zipfian,这不是统一的。
答案 1 :(得分:0)
机器上的总内存是多少?如果你的机器上有32GB或更多的RAM,那么它也可能是操作系统页面缓存 - 这将超出Cassandra进程(例如不是堆)。在像这样的scenrios中,操作系统(假设它的linux)将最终缓存内存中的整个24GB并且你将获得很少的磁盘活动。