Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 YCSB 并使用工作负载 c(read100%) 测试 cassandra。iostat 在读取时总是显示 0。
配置:
数据在 sdb 上,24G 数据,8G 堆大小,默认内存表大小,禁用行缓存和键缓存。
正如我的想法,统一请求会导致memtable丢失,并在ssttable上查找数据,因此数据dir iostat不应为零。8G heap 的 memtable 怎么能存储所有 24G 的数据?
有人遇到同样的问题吗?
机器上的总内存是多少?如果您的机器上有 32GB 或更多的 RAM,那么它也可能是操作系统页面缓存 - 它位于 Cassandra 进程之外(例如,不是堆)。在这样的场景中,操作系统(假设它的 linux)最终会将整个 24GB 缓存在内存中,并且您将获得很少的磁盘活动。
这里没有魔法。您的请求工作量不能像您想象的那样随机。
我碰巧签出了一份 YCSB 副本,并且工作负载c 使用了不统一的 requestdistribution=zipfian。