当前位置:  开发笔记 > 运维 > 正文

为什么需要在Datastax Cassandra中关闭交换?

如何解决《为什么需要在DatastaxCassandra中关闭交换?》经验,为你挑选了2个好方法。

我是Datastax cassandra的新手.在经历cassandra的安装过程时.建议关闭OS的交换区域.有没有人提供原因?它会影响任何操作系统级操作吗?



1> psanford..:

在生产中,如果您的数据库使用交换,则性能会非常差.在一个Cassandra节点中,你最好让一个节点完全向下,而不是允许它在交换中跛行.

确保您永远不会进入交换的最简单方法是简单地禁用它.



2> Ananth..:

如果您不禁用交换空间,则在操作系统级别出现内存不足(当cassandra mmap用完地址空间时)问题时,操作系统将尝试获取一部分JVM,这实际上是在尝试清除JVM默认情况下是通过JNI进行的。现在,由于丢失了其堆内存的一部分,JVM的速度降低了。现在,GC将与具有较少堆内存的cassandra写操作一起发生。这会降低cassandra节点的整体性能,并逐渐在OS级别上没有剩余内存的某个时间点将其杀死。

这就是为什么他们建议您两件事。

    捆绑jna.jar。如果有针对Cassandra的mmap的GC操作,则所有操作均由Java代码完成,而不是由Cassandra中默认提供的JNI部分完成。因此,它避免了本机操作时JNI尝试存储的部分地址空间。

    禁用交换空间。性能低下的cassandra节点将减慢其客户端的所有操作。甚至复制到该节点的速度也会变慢,因此您读/写的速度将比您想象的要慢。当发生此类“内存不足”时,节点应死亡并重新启动,而不是占用一部分JVM来减慢整个过程。

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有