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