根据DataStax Cassandra文档链接r.html
compaction_throughput_mb_per_sec (默认情况:16)将整个系统的总吞吐量压缩到指定的总吞吐量。插入数据的速度越快,您就需要更快地压缩以降低SSTable计数。建议的值是写吞吐量的16到32倍(以MB/秒为单位)。将值设置为0将禁用压缩节流。
我对上述文本的字面解释是,如果您正在观察磁盘I/O (mb/s),例如38 mb/s,现在只考虑Cassandra节点上的写负载,那么compaction_throughput_mb_per_sec将被设置为38 * 16 = 608或38 * 32 = 1216,这与压缩策略无关。
如果上面的解释是正确的,那么请让我理解608或1216值在节流压缩和系统总吞吐量的上下文中的实际含义,例如,可以通过扩展下面所提到的策略(默认)来实现。
情节:
根据文档,SizeTieredCompactionStrategy的SizeTieredCompactionStrategy值是6,在本例中它没有变化。平均而言,每个节点的磁盘I/O约为38 mb/s (仅为写操作,没有发生读取操作)。compaction_throughput_mb_per_sec值为16。
值为16的压缩工作流是什么?如果我们把它改为608,那么到底会发生什么变化,什么会受到影响,以及如何影响?
发布于 2017-11-28 11:43:54
让我们重新审视压实的含义。
压缩过程合并键、组合列、清除墓碑、合并SSTables,并在合并的SSTable中创建新的索引。 ..。 compaction_throughput_mb_per_sec参数设计用于大分区,因为压缩控制到整个系统的指定总吞吐量。
参考:配置压缩
为了在混合读写工作负载中保持读取性能,需要减少小SSTables在单个长时间运行压缩过程中积累的趋势。
参考:压路机
因此,在更新秒时,可以更新编写新的统一SSTables的速度;反过来可以帮助您减少小型SSTables在压缩过程中积累的趋势。
因此,简而言之,当您将compaction_throughput_mb_per_sec的值从16增加到608时,您将增加写入SSTables所需的写入吞吐量,从而减少创建小型SSTables的机会,并最终提高读取性能。
https://stackoverflow.com/questions/34851365
复制相似问题