1

使用 YCSB 并使用工作负载 c(read100%) 测试 cassandra。iostat 在读取时总是显示 0。

配置:

数据在 sdb 上,24G 数据,8G 堆大小,默认内存表大小,禁用行缓存和键缓存。

正如我的想法,统一请求会导致memtable丢失,并在ssttable上查找数据,因此数据dir iostat不应为零。8G heap 的 memtable 怎么能存储所有 24G 的数据?

有人遇到同样的问题吗?

4

2 回答 2

0

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

于 2013-02-26T03:20:34.953 回答
0

这里没有魔法。您的请求工作量不能像您想象的那样随机。

我碰巧签出了一份 YCSB 副本,并且工作负载c 使用了不统一的 requestdistribution=zipfian。

于 2012-12-23T18:37:02.187 回答