故障排除和调试|点燃文档

点燃2023年峰会-按需观看-立即注册!

编辑

故障排除和调试

本文介绍了一些调试和排除Ignite部署故障的常见提示和技巧。

调试工具:一致性检查命令

这个./control.sh|bat实用程序包括一组一致性检查命令这有助于验证内部数据一致性不变量。

重新启动时持久性文件消失

在某些系统上,Ignite持久性文件的默认位置可能位于临时雇员文件夹。这可能导致每当节点进程重新启动时,操作系统都会删除持久性文件。为了避免这种情况:

  • 确保警告已为点火启用日志记录级别。如果持久性文件被写入临时目录,您将看到一条警告。

  • 使用数据存储配置API,例如setStoragePath(…),setWalPath(…)、和设置WalArchivePath(…)

字段类型更改后群集不启动

开发应用程序时,可能需要更改自定义的类型对象的字段。例如,假设您有对象A类带字段A.范围属于整数输入,然后决定更改A.范围长的就在里面源代码。当您这样做时,集群或应用程序将无法重新启动,因为Ignite不支持字段/列类型更改。

发生这种情况时你还在发展中,你需要进入文件系统并删除以下目录:编组员/,数据库/、和沃尔/位于点火工作目录中(数据库沃尔可能位于其他位置(如果您重新定义了它们的位置)。

然而,如果你是生产中然后添加一个使用与对象模型不同的名称新建字段并删除旧字段。此操作完全支持。同时ALTER表格命令可用于添加新的列或在运行时删除现有列。

调试GC问题

本节包含在您需要调试和解决与Java堆使用或GC暂停相关的问题。

堆垃圾场

如果JVM生成内存不足异常然后在下次发生异常时自动转储堆。如果此异常的根本原因不清楚,并且需要更深入地查看发生故障时的堆状态,这将有所帮助:

-XX年:+堆转储OnOutOfMemoryError-XX年:堆转储路径=/路径/到/堆转储-XX年:OnOutOfMemory错误=“杀死-9%p英寸-XX年:+退出OnOutOfMemoryError

详细GC日志

为了捕获有关GC相关活动的详细信息,请确保配置了以下设置在集群节点的JVM设置中:

-XX年:+打印GCDetails-XX年:+打印GCTimeStamps-XX年:+打印GCDateStamps-XX年:+使用GCLogFileRotation-XX个:GCLog文件数=10-XX年:GCLog文件大小=100米-Xloggc公司:/path/to/gc/logs/log.txt

更换/路径/to/gc/logs/文件系统上的实际路径。

此外,对于G1收集器,设置以下属性。它提供了许多其他详细信息故意不包括在-二十: +打印GCDetails设置:

-XX个:+PrintAdaptiveSizePolicy

飞行记录器性能分析

在需要调试性能或内存问题的情况下,可以使用Java Flight Recorder连续进行收集低级运行时统计信息,实现事后事件分析。要启用Java Flight Recorder,请使用以下设置:

-XX年:+解锁商业功能-XX年:+飞行记录器-XX年:+取消锁定DiagnosticVMOptions-XX年:+调试非安全点

要开始记录特定点火节点上的状态,请使用以下命令:

jcmd<PID>JFR.start名称=<记录名称>期间=60年代文件名=/var/记录/记录.jfr设置=配置文件

有关飞行记录器的详细信息,请参阅Oracle的官方文档。

JVM暂停

有时您可能会看到一条关于JVM暂停时间过长的警告消息。例如,它可能发生在散装过程中。

调整点火_JVM_PAUSE_DETECTOR_THRESHOLD超时设置可以在不生成警告的情况下为进程提供完成时间。您可以通过环境变量设置阈值,也可以将其作为JVM参数传递(-DIGNITE_JVM_PAUSE_DETECTOR_THRESHOLD=5000)或作为点火参数。sh(-J-DIGNITE_JVM_PAUSE_DETECTOR_THRESHOLD=5000).

该值以毫秒为单位。