当我运行'nodetool cfhistograms‘时,我看到了一个表格数据。
Percentile SSTables Write Latency Read Latency Partition Size Cell Count
(micros) (micros) (bytes)
50% 2.00 0.00 8239.00 924 20
75% 4.00 0.00 9887.00 1109 20
95% 4.00 0.00 51012.00 1916 24
98% 4.00 0.00 51012.00 2299 29
99% 4.00 0.00 51012.00 2759 35
Min 0.00 0.00 150.00 73 2
Max 4.00 0.00 51012.00 3973 60有人能解释一下这些是如何计算的吗?我理解%le的概念,但我想知道计算上述结果时需要考虑多少读/写操作。
发布于 2018-06-01 05:52:42
现在是nodetool tablehistograms了。每个表都有一个用于读取和写入的直方图,该直方图在本地读/写完成时更新。这不包括等待副本达到一致性级别等的网络时间,即nodetool proxyhistograms。
这里有一些历史,它们会随着时间的推移而改变,所以它取决于cassandra的版本来解释输出。几年前,我在here峰会上做了一次演讲,可以解释一些“为什么”。在一段时间内(只有2.1),As直方图是使用指标指数衰减的储层报告的,这是非常不准确的。在2.1之前,cfhistograms图的显示完全不同,但在这一点上不值得一提。
目前,它们由真实的直方图表示,而不是储层(EstimatedHistogram)。这些直方图有固定的桶,每个桶比以前大20%。因为它是固定的,所以存储的值只是一个长atomiclongarray/longadder[] depending on version specifically。它标识哪个存储桶持有该值,因此在更糟糕的情况下,它会报告比实际情况更糟糕的20%。根据该直方图,使用标准机制计算百分位数。
有两个这样的直方图保留下来。一个“一直”直方图和一个“最近”直方图。所有时间直方图是存储桶自Cassandra启动以来不断递增的位置。这可以通过找出它们之间的差异,准确地判断出自上次查看以来在哪个存储桶中发生了多少个事件。这个时刻的直方图应该是被监测和提醒的,因为它是准确的。“最近”直方图forward decays桶的值。然后,较新的值被考虑到比以前的值更多的指数,给出了“大约最后15分钟左右”的视图,而不是真正用于监视,而是临时查看它现在的样子。注意:这个最近的直方图直到3.0.9/3.8才存在,在2.2之间,然后all直方图报告了所有的时间值。
" sstables“列是在一次读取时接触到的稳定数。在CASSANDRA-13120中,“触摸”意味着什么改变了。以前,如果检查sstable上的bloomfilter意味着可能的磁盘IO,那么它只会根据令牌范围和时间戳过滤掉东西。现在,如果bloomfilter从读取中排除了sstable,则不会对其进行计数。然后将其保存在上面提到的两个直方图中,以获得延迟。
Partition Size和Cell Count根据磁盘上的数据生成。每个sstable保存在写入时计算的分区大小和单元计数的直方图。当读取表的这个值时,它合并来自所有sstables的统计信息,以生成这里在百分位数计算中使用的表宽直方图。
https://stackoverflow.com/questions/33099232
复制相似问题