
# 缩小batch大小后，QPS上升，实例总体性能为什么会下降
#### 问题现象
用户原来的batch_size设置的是100，单行大概为400Byte。由于batch_size达到5KB后会触发告警，所以修改batch_size为10。但是为了保证总体写入性能，QPS会达到原来的10倍，然而实际修改后总体性能却出现下降。
#### 可能原因
客户端的并发数受限于Driver的配置参数，主要和Host个数，Session个数，ConnectionsPerHost，MaxRequestsPerConnection这几个参数相关。
![](https://support.huaweicloud.com/cassandraug-nosql/zh-cn_image_0000001216975247.png "点击放大")
例如：用户启动一个Cluster，一个Cluster建立了一个Session，集群中有3个Host， ConnectionsPerHost设置为2，MaxRequestsPerConnection使用默认值128，则该Session总的最大并发请求数为768，单个节点最大请求数为256。
详细的参数解析请见[官方文档](https://docs.datastax.com/en/developer/java-driver/3.11/manual/pooling/)。
#### 解决方案
通过[查看监控指标](https://support.huaweicloud.com/cassandraug-nosql/nosql_03_0013.html)，观察单个节点的CPU使用率、读写pending、读写时延等指标的使用情况。
- 如果单个节点负载已经达到上限，则需要进行节点个数扩容，具体操作请参见[GeminiDB Cassandra实例手动添加节点](https://support.huaweicloud.com/cassandraug-nosql/nosql_increase_nodes.html)。

- 如果单个节点负载还处于较低水平，则需要调整Driver端的配置。
  1. 将"ConnectionsPerHost"调大， 但需要所有连接对该集群总的连接数，不超过用户设置的告警阈值。
  
  2. 将"MaxRequestsPerConnection"调大 ，调整时，不要超过单个节点的负载能力，需要观察CPU，读写时延，读写pending个数指标。
   
 
