我使用设置了每个主机的核心连接数,使用设置了cass_cluster_set_max_connections_per_host()
I / O线程数cass_cluster_set_num_threads_io()
。我看到客户端主机正在使用netstat命令建立核心连接*数量个I / O线程,与群集中每个主机的tcp连接数。我想知道I / O线程和核心连接之间有什么区别?另外,如果客户端与10台主机的Cassandra集群进行通信,并且核心连接数设置为2,则I / O线程数设置为4,则从主机到集群的连接数实际上为10 * 4 * 2,即80个-在单个会话中,如何利用这些连接?看起来不是多余的吗?
我正在尝试调整这些值,以便如果群集同时由100个主机连接,则速度不会降低。还是那些设置与速度无关?任何更多的信息或链接表示赞赏!
这是此处显示字段的官方文档
cass_cluster_set_num_threads_io:这是将处理查询请求的线程数。默认值:1
cass_cluster_set_max_connections_per_host:设置每个IO线程中与每个服务器建立的最大连接数。默认值:2
我想知道I / O线程和核心连接之间有什么区别?
I / O线程基本上负责执行客户端和服务器之间的所有网络操作。因此,如果您有1000条消息正在等待网络操作,则该线程将一个接一个地选择请求并执行它们。预设值为1。
一旦I / O线程选择了一条消息,它就会使用set_max_connections中指定的连接来发出请求。缺省值为2,这样I / O线程可以根据服务器延迟和吞吐量智能地切换连接。
我正在尝试调整这些值,以便如果群集同时由100个主机连接,则速度不会降低。
您可以保持最大连接常数并增加I / O线程数,也可以采用其他方法进行扩展。两者之间没有明显更好的方法。您将需要进行基准测试,看看哪种方法适合您的情况。
我认为,如果您的请求数量较少,但请求量很大,那么增加连接数会更有意义,但仍然需要进行基准测试。
该链接还提供了一些额外的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句