我们目前在 2 个大型 EC2 实例上使用由 2 个 cassandra 节点组成的集群。他们每个人都有大约65G的使用数据。(开发和生产的设置相同)。
我们遇到的问题是在生产写入期间 - CPU 负载变为 40 +(2 核机器),最终机器变得不可用并且需要重新启动。我尝试了多种“调整策略”,例如减少总内存表空间,改变年轻代中伊甸园空间与生存空间的比例,将更大的对象直接从伊甸园空间复制到老一代,优化压缩以更频繁地运行,使用更小的# sstables(我注意到在崩溃期间磁盘利用率几乎为零,所以我试图减轻内存使用量)。
查看 cassandra system.log,我看不到任何错误或警告。崩溃期间唯一显示的是 StatusLogger 输出。
如果我在 Dev 集群上运行写入,一切都运行顺利 - 没有错误,负载最大 1.5-2。如果我重新启动 2 个生产实例,我可以在崩溃发生之前运行一段时间的读写操作,否则假设机器已经运行了 2 天以上,崩溃会在几分钟内发生。
任何建议,想法将不胜感激。
谢谢