【发布时间】:2021-07-18 03:46:43
【问题描述】:
在生产中对一些大型 sstable 运行压缩时出现 OutOfMemoryError,表大小约为 800 GB,但小型 sstable 上的压缩工作正常。
$ noodtool compact keyspace1 users
error: Direct buffer memory
-- StackTrace --
java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:693)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)
at org.apache.cassandra.io.compress.BufferType$2.allocate(BufferType.java:35)
Java 堆内存(Xms 和 Xmx)已设置为 8 GB,想知道是否应该将 Java 堆内存增加到 12 或 16 GB?
【问题讨论】: