【问题标题】:cassandra 2.2.8: sstableverify - GC overhead limit exceededcassandra 2.2.8:sstableverify - 超过了 GC 开销限制
【发布时间】:2017-06-20 04:29:27
【问题描述】:

我怀疑我的表损坏了我的 sstables,因此我在节点关闭时运行 sstableverify 实用程序。我收到类似[GC overhead limit exceeded]的消息

如果可以解决或解决此问题,请寻求帮助.. 提前致谢!

sstableverify -v 企业 ale_state_access_point

线程“主”java.lang.OutOfMemoryError 中的异常:GC 开销 超出限制 在 java.util.Arrays.copyOf(Arrays.java:3332) 在 java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) 在 java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:649) 在 java.lang.StringBuilder.append(StringBuilder.java:202) 在 org.apache.cassandra.io.sstable.Descriptor.filenameFor(Descriptor.java:170) 在 org.apache.cassandra.io.sstable.Descriptor.filenameFor(Descriptor.java:125) 在 org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:709) 在 org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:672) 在 org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:466) 在 org.apache.cassandra.io.sstable.format.SSTableReader.openNoValidation(SSTableReader.java:377) 在 org.apache.cassandra.tools.StandaloneVerifier.main(StandaloneVerifier.java:89) 错误 20:33:15 检测到泄漏:参考 (org.apache.cassandra.utils.concurrent.Ref$State@6d42f926) 上课 org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier@1047072254:/cassandra/data/enterprise/ale_state_access_point-ae4c50d0d67a11e696b25735df805631/lb-79600-big 在引用被垃圾回收之前没有释放 ERROR 20:33:15 泄漏检测:参考 (org.apache.cassandra.utils.concurrent.Ref$State@69f4a15d) 上课 org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier@1968390106:/cassandra/data/enterprise/ale_state_access_point-ae4c50d0d67a11e696b25735df805631/lb-58267-big 在引用被垃圾回收之前没有释放

【问题讨论】:

    标签: java memory-leaks cassandra cassandra-cli


    【解决方案1】:

    我猜你有很多 sstables,因为它仅仅构建描述符就失败了。如果系统上有内存,请尝试增加堆(默认 256mb):

    MAX_HEAP_SIZE=4G sstableverify -v enterprise ale_state_access_point

    【讨论】:

    • 感谢@Chris Lohfink,你说得对。有很多 sstables,所以我所做的就是通过改变少数 CF 的压缩策略来进行压缩。这解决了这个问题。
    【解决方案2】:

    如果你篡改了 sstables 并破坏了它们,你能做的就只有这么多了。当节点尝试加载表时也会发生这种情况。我建议从备份中恢复或清理表。

    【讨论】:

    • 嗨,Marko.. 再次感谢您的回复。尽管 sstablescrub 和 sstableverify 实用程序都会抛出 OOM 消息,但我确实在尝试清理表。 nodetool scrub 只是挂起并且永远不会完成......因此我正在寻找这些实用程序运行失败的原因以及我们是否可以解决这些问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多