【问题标题】:How can I disable system_traces keyspace in Cassandra?如何在 Cassandra 中禁用 system_traces 键空间?
【发布时间】:2016-02-17 15:39:00
【问题描述】:

我们在小型开发环境(2 个 DC,每个 3 个节点)中使用 Cassandra 2.1.5。 我们在开发机器上没有太多空间,几乎每天都面临磁盘空间错误。罪魁祸首是 system_traces 键空间:

.../system_traces]# du -sh
8.1G    .

我尝试在 cqlsh 中关闭跟踪:

cqlsh> tracing off;
Tracing is not enabled.

我尝试了 nodetool settraceprobability 0 - 但表格仍在填充。

我无法删除表和键空间:

cqlsh> drop keyspace system_traces;
Unauthorized: code=2100 [Unauthorized] message="Cannot DROP <keyspace system_traces>"

唯一可行的解​​决方案是“truncate system_traces.sessions; truncate system_traces.events;” - 但这些表很快就会满是行。

如何一劳永逸地禁用它?

【问题讨论】:

  • 您仍然必须在某处启用跟踪。您检查过您的客户端应用程序吗?您使用哪种语言/驱动程序?
  • Java,阿喀琉斯。与在客户端代码中的跟踪无关。
  • 尝试查看几行,这可能会提示您是什么生成了这些痕迹。例如,当我手动跟踪 CQL 查询时,查询字符串出现在 sessions.parameters 中。
  • @Olivier Michallat 你是对的。原来,Achilles 为在 slf4j 中具有 TRACE 日志记录的实体启用了跟踪日志记录。因此,如果您在日志记录中将 your.company.package 设置为 TRACE,您将自动在 Achilles 中获得 CQL 跟踪。您能否将您的答案添加为答案,以便我将其标记为解决方案?

标签: cassandra


【解决方案1】:

跟踪概率也有可能被启用,您可以在运行时通过 nodetool 禁用它:

nodetool settraceprobability 0

但必须在每个节点上完成。您可以截断事件/会话表

cqlsh> truncate system_traces.events;
cqlsh> truncate system_traces.sessions;

但如果截断触发了快照,则可能需要清除快照。

nodetool clearsnapshot system_traces

【讨论】:

  • 我在问题中提到我已经执行了settraceprobability 0,没有帮助。
【解决方案2】:

您必须仍然在某处启用了跟踪。尝试查看几行,这可能会提示您生成这些痕迹的原因。例如,当我手动跟踪 CQL 查询时,查询字符串出现在 sessions.parameters 中。

【讨论】:

    【解决方案3】:

    nodetool settraceprobability 1 帮助我开始跟踪和获取那些 system_traces 表中的数据,例如会话和事件。早些时候它没有为我显示任何数据。我在所有节点上都做了同样的步骤。因此,如果我们对所有表都执行此操作,那么 nodetool settraceprobability 0 应该会停止记录。

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 2015-08-22
      • 2011-11-30
      • 2017-05-19
      • 2015-07-07
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多