Cassandra 行缓存大小增加但未接收行请求
Posted
技术标签:
【中文标题】Cassandra 行缓存大小增加但未接收行请求【英文标题】:Cassandra Row Cache size increased but not receiving row requests 【发布时间】:2016-05-06 09:02:27 【问题描述】:我在 AWS EC2 实例上使用 Cassandra 2.2.6 datastax AMI 来分析行缓存性能。即使在创建三个启用行缓存并增加 row_cache_size、row_cache_keys_to_save 和 row_cache_save_period 的表之后。 使用 Cassandra 压力工具使用 5M 写入请求填充缓存内存。 我无法通过使用统一(1..100000)的读取繁重的 Cassandra 压力测试获得行缓存读取请求和行缓存命中。
节点工具信息
ID : 705c2b22-d049-4ea3-a073-967c3d14cb62
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 2.74 GB
Generation No : 1462522631
Uptime (seconds) : 1543
Heap Memory (MB) : 936.27 / 1850.00
Off Heap Memory (MB) : 13.10
Data Center : us-east
Rack : 1a
Exceptions : 0
Key Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 14400 save period in seconds
Row Cache : entries 0, size 0 bytes, capacity 1000 MB, 0 hits, 0
requests, NaN recent hit rate, 14400 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 46 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
【问题讨论】:
【参考方案1】:从数据库中读取数据时会填充行缓存。每次更新数据行缓存时都会失效。您能否解释一下您是如何对此进行测试的?您的实际结果与期望结果是什么?
【讨论】:
我已经使用 Cassandra 压力工具进行了测试。我尝试通过发送 5M 写请求来填充缓存内存。后来尝试通过使用 UNIFORM(1...100000) 发送 5M 读取请求来测试行缓存性能。我正在尝试分析行缓存性能,期望获得更好的命中率或除零以外的结果。对不起,如果这个问题看起来是假设性的和愚蠢的。 此测试不会显示您要查找的内容。这就是我在之前的回答中试图解释的内容,但现在更清楚了。行缓存在第一次读取时填充,因此当您再次读取相同的数据时,您会从缓存中读取它。使用这种压力测试配置,您永远不会两次读取相同的数据。 非常感谢!这对我帮助很大。以上是关于Cassandra 行缓存大小增加但未接收行请求的主要内容,如果未能解决你的问题,请参考以下文章