如果您不禁用交换空间,当操作系统面临内存不足(当cassandra的mmap使用完地址空间)的问题时,操作系统将尝试取走JVM的一部分,而默认情况下这实际上是通过JNI清除的。现在,JVM的速度变慢了,因为它的堆内存的一部分丢失了。现在,在较少的堆内存中,GC将与cassandra写操作同时进行。这会使cassandra节点的整体性能下降,并最终在OS级别没有更多内存可用时逐渐将其杀死。这就是为什么他们建议你做两件事:1. 捆绑 jna.jar。当对 cassandra 的 mmap 进行 GC 操作时,所有操作都由 java 代码完成,而不是 cassandra 默认提供的 JNI 部分。因此,它避免了 JNI 尝试在本地操作的情况下存储的地址空间的一部分。2. 禁用交换空间。低效的 cassandra 节点将减缓其客户端的所有操作。即使是对此节点的复制也会变慢,因此您的读/写速度将比您想象的要慢。出现 Out of Memory 时,一个节点应该死亡并重新启动,而不是取走JVM的一部分,拖慢整个过程。