Cassandra Native Transport Request 调整

Cassandra Native Transport Request tuning

根据扩展本机传输请求的研究,我配置了以下参数,应用程序似乎可以很好地扩展,但我不明白以下内容,

1) 我已经配置了 native_transport_max_threads: 256 按照我的理解它提供了并发请求处理,所以它应该等于核心总数吧,为什么默认为128?

2) 我把这个值设置为 -Dcassandra.max_queued_native_transport_requests=5192 增加这些值有什么问题?

1) 它可以协调的最大并发请求数,不一定是它执行的请求数的限制。这种协调包括诸如等待副本(由一致性级别确定)到 return 数据之类的事情。这不是活跃的工作,因此没有理由限制核心数量。

2) 向您的应用程序推送超过您的协调器配置为一次处理的背压正在应用在您的协调器的内存中。这里的成本是系统可用的堆压力和内存,以及排队等待的时间。

根据您的 ,我认为当您的数据可能存在问题时,您可能过于关注 NTR 阶段 model/queries。如果增加该队列没有帮助,则可能不是原因。通常情况下,排队的 NTR 是问题的唯一场景是当您一次关闭大量微小查询时(通常不止一个客户端可以进行,因为默认情况下每个主机有 1024 个默认限制)。这几乎是唯一有助于增加队列限制以消除峰值的情况。如果没有帮助,则使用 proxyhistograms/tablehistograms/tablestats 缩小 table 和查询造成压力的范围。如果不是很明显,则可能是与 GC 相关的问题或两者兼而有之。