2017-07-24 73 views
0

当我使用cassandra.ClientRequest.ReadLatency.p99测量协调器处的p99读取延迟时,我得到的时间为〜20ms。当我使用DataStax Java驱动程序从我们的客户端应用程序中进行测量时,我得到的P99为〜100ms。这些机器之间的原始往返时间(网络开销)为〜6ms。剩余的差异是典型的吗?或者在这里解决一些问题?我能想到的唯一可能的罪魁祸首是协调器节点上的垃圾收集。Cassandra协调器延迟和客户端延迟之间的主要差异

回答

0

网络+内核+驱动程序反序列化+ gcs的延迟很可能导致协调省略,导致它们不能很好地跟踪。此外,您如何衡量它们也很重要,但是驱动程序指标是最有可能的指标,对您来说很有意思,因为您的应用程序看到了这个指标。 ClientRequest指标以外的大部分时间都是您必须使用环境解决的问题。尽管您可能想确保在NativeTransport阶段(tpstats)中没有处于阻塞状态的东西在标记请求“开始时间”之前会被阻止。

建议您也尝试使用hdr histogram进行监控,因为如果您使用Metrics计时器使用采样容器(默认使用哪个驱动程序)对于准确跟踪长尾延迟非常不利。