如何更改cassandra的刷新队列大小

时间:2015-06-16 21:36:10

标签: cassandra datastax-enterprise datastax-java-driver

如何在Cassandra中为memtable和sstable之间的刷新队列分配更多内存。我有超时错误,堆和年轻区域的使用似乎在限制之内。除了机器中的Cassandra之外没有其他处理过程。如何查找是否有任何请求被丢弃在以太网卡而不是Cassandra。 我使用Cassandra Datastax 4.7和Java 1.8。

1 个答案:

答案 0 :(得分:1)

  

如何更改cassandra的刷新队列大小

您可以通过修改memtable_flush_writers文件中的cassandra.yaml来增加flush flush的数量。请参阅related docs.

  

如何在memtable和memtable之间为刷新队列分配更多内存   在卡桑德拉的sstable。

您没有为队列分配内存。您只能增加队列的线程。您可以完整地增加JVM的内存。 Cassandra的堆大小通常建议为8GB,但有些JVM调整会更高。

  

另外如何查找以太网卡上是否有任何请求被丢弃   不是卡桑德拉。   根据您的一致性级别,如果没有足够的副本确认,您的读取或写入可能会失败。

如果您对丢弃的网络数据包感兴趣,请查看输出:

# ifconfig
eth0      Link encap:Ethernet  HWaddr XX:34:XX:XX:10:03
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:89549235 errors:0 dropped:0 overruns:0 frame:0
          TX packets:100307025 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:757464549909 (757.4 GB)  TX bytes:27216611814 (27.2 GB)

ifconfig保留在NIC级别出错,丢弃等的数据包的计数。