Troubleshooting

此页面列出了 OpenTSDB 用户遇到的常见问题以及各种故障排除步骤。如果您遇到问题,请检查OpenTSDB Google 组Github Issues。如果找不到答案,请在问题中包含 os,TSD 版本和 HBase 版本。

OpenTSDB 压缩会触发大型.tmp 文件,并且 HBase 中的区域服务器崩溃

如果您使用毫秒时间戳并在一个小时内为单个度量写入数千个数据点,则可能导致这种情况。在这种情况下,列限定符和行键可以大于配置的hfile.index.block.max.size。在这种情况下,建议您禁用 TSD 压缩代码。将来,我们将支持追加,该追加将允许使用带有小的限定符的压缩列。

TSD 在区域分割后或长时间运行后响应速度很慢

在区域拆分或区域迁移期间,OpenTSDB 的 AsyncHBaseClient 端将在内存中缓冲 RPC,并在区域重新联机后尝试刷新它们。默认情况下,每个区域都有 10,000 个 RPC 缓冲区,如果许多区域关闭,则 RPC 最终会填满 TSD 堆并导致长时间的垃圾收集暂停。如果发生这种情况,您可以通过修改 AsyncHBase 1.7 和 OpenTSDB 2.2 中的hbase.nsre.high_watermark config 参数来增加堆以容纳更多的区域划分或减小 NSRE 队列大小。

TSD 由于内存不足异常而卡在 GC 中或崩溃

此问题有很多潜在原因,包括:

  • 来自 HBase 的多个 NSRE-请参阅上面有关 TSD 响应缓慢的部分。

  • 写入过多-如果对 TSD 的写入率很高,则队列可以在 AsyncHBase(请参见上文)或压缩队列中构建。如果是这种情况,请检查 HBase 性能并尝试禁用压缩。

  • 大型查询-具有多个时间序列或较长范围的非常大的查询可能导致 TSD 变为 OOM。尝试减小查询大小或将大型查询分成较小的块。