cassandra 2.2.6中的高读写延迟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cassandra 2.2.6中的高读写延迟相关的知识,希望对你有一定的参考价值。

你好类似的问题已经被问过,但我想我们有一些不同的问题:

我们使用Cassandra 2.2.6单节点安装(并将升级到最新版本)。现在,我们遇到了可怕的查询时间,有时会写出超时。

    Read Count: 21554802
    Read Latency: 10.702975718589295 ms.
    Write Count: 19437551
    Write Latency: 27.806026818707767 ms.
    Pending Flushes: 0
            Table: -----
            SSTable count: 5
            Space used (live): 661310370
            Space used (total): 661310370
            Space used by snapshots (total): 704698632
            Off heap memory used (total): 845494
            SSTable Compression Ratio: 0.13491738106721324
            Number of keys (estimate): 179623
            Memtable cell count: 594836
            Memtable data size: 8816212
            Memtable off heap memory used: 0
            Memtable switch count: 3343
            Local read count: 21554802
            Local read latency: 11,744 ms
            Local write count: 19437551
            Local write latency: 30,506 ms
            Pending flushes: 0
            Bloom filter false positives: 387
            Bloom filter false ratio: 0,00024
            Bloom filter space used: 258368
            Bloom filter off heap memory used: 258328
            Index summary off heap memory used: 34830
            Compression metadata off heap memory used: 552336
            Compacted partition minimum bytes: 180
            Compacted partition maximum bytes: 12108970
            Compacted partition mean bytes: 23949
            Average live cells per slice (last five minutes): 906.8858219156                                                       92
            Maximum live cells per slice (last five minutes): 182785
            Average tombstones per slice (last five minutes): 1.432102507830                                                       9697
            Maximum tombstones per slice (last five minutes): 50

为了比较,有一个不同的表包含大约10M记录,并且构造与上面的非常类似

    Read Count: 815780599
    Read Latency: 0.1672932019580917 ms.
    Write Count: 3083462
    Write Latency: 1.5470194706469547 ms.
    Pending Flushes: 0
            Table: ------
            SSTable count: 9
            Space used (live): 5067447115
            Space used (total): 5067447115
            Space used by snapshots (total): 31810631860
            Off heap memory used (total): 19603932
            SSTable Compression Ratio: 0.2952622065160448
            Number of keys (estimate): 12020796
            Memtable cell count: 300611
            Memtable data size: 18020553
            Memtable off heap memory used: 0
            Memtable switch count: 97
            Local read count: 815780599
            Local read latency: 0,184 ms
            Local write count: 3083462
            Local write latency: 1,692 ms
            Pending flushes: 0
            Bloom filter false positives: 7
            Bloom filter false ratio: 0,00000
            Bloom filter space used: 15103552
            Bloom filter off heap memory used: 15103480
            Index summary off heap memory used: 2631412
            Compression metadata off heap memory used: 1869040
            Compacted partition minimum bytes: 925
            Compacted partition maximum bytes: 1916
            Compacted partition mean bytes: 1438
            Average live cells per slice (last five minutes): 1.0
            Maximum live cells per slice (last five minutes): 1
            Average tombstones per slice (last five minutes): 1.0193396020053622
            Maximum tombstones per slice (last five minutes): 3

差异是第一个包含大量地图和UDT。在开发中心进行简单测试select * from ... limit 999; (省略任何Lucene索引等)最后一个显示183ms,第一个显示1.8s。

任何人都可以帮助定义找到根本原因的方法?

答案

每片最大活细胞数(最后五分钟):182785

这很大,可能来自你的地图和UDT。您的数据模型很可能是根本原因。步行直播180k单元格以满足单个查询将非常缓慢。

select * from ... limit 999;

范围查询本质上很慢。尝试设计表格,以便您可以从单个分区回答问题,您将获得更好的结果。

一个节点安装

每当有一个GC你会得到一个糟糕的查询,这可以通过添加更多的节点来减轻这种情况,这样暂停就不会受到伤害(如果在驱动程序上使用客户端推测性重试则更好)。

以上是关于cassandra 2.2.6中的高读写延迟的主要内容,如果未能解决你的问题,请参考以下文章

Storm 中的延迟队列实现——Kafka、Cassandra、Redis 还是 Beanstalk?

Cassandra 节点上的高磁盘 I/O

AWS中的高Redis延迟(ElastiCache)

Mongodb cassandra 和 Mysql对比

如何在spark中读写cassandra数据

Cassandra并发读写