Bar*_*tek 2 garbage-collection amazon-ec2 cassandra
我在3个EC2 m1.xlarge实例上设置了3个Cassandra(1.2.10)集群节点.
基于默认配置,包括几个指南,如:
随着500次写,集群仅适用于几个小时.在那段时间之后,由于CPU过载(主要是GC +压缩),似乎无法响应.
节点仍然保持Up,但是它们的负载非常大,而且日志中充满了GC信息和消息,例如:
ERROR [Native-Transport-Requests:186] 2013-12-10 18:38:12,412 ErrorMessage.java (line 210) Unexpected exception during request java.io.IOException: Broken pipe
Run Code Online (Sandbox Code Playgroud)
nodetool在每个节点上显示许多丢弃的突变:
Message type Dropped
RANGE_SLICE 0
READ_REPAIR 7
BINARY 0
READ 2
MUTATION 4072827
_TRACE 0
REQUEST_RESPONSE 1769
Run Code Online (Sandbox Code Playgroud)
对于m1.xlarge的3节点集群,500 wps是否过多,我应该添加节点?或者是否有可能以某种方式进一步调整GC?使用m1.xlarge的3个节点可以提供什么负载?你的GC配置是什么?
Cassandra完全能够在单个节点上每秒处理数万个小写入.我刚刚检查了我的笔记本电脑,并从卡桑德拉1.2上的cassandra-stress获得了大约29000次写入/秒.因此,即使对于单个节点,每秒500次写入也不是真正令人印象深刻的数字.
但请注意,数据刷新到磁盘的速度也有限制,并且您绝对不希望传入数据速率接近HDD的物理功能.因此,如果这些写入足够大,则每秒500次写入可能太多.
首先 - 写的平均大小是多少?你的复制因素是什么?按复制因子和平均写入大小相乘的写入次数 - 然后您将大致知道群集所需的写入吞吐量.但是你应该为压缩等其他与I/O相关的任务留出一些安全余量.互联网上有各种基准测试,告诉单个m1.xlarge实例应能在20 MB/s到100 MB/s之间写入...
如果您的群集具有足够的I/O吞吐量(例如,比所需的多3倍),但是您观察到OOM问题,则应尝试:
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |