在本文中,我们将讨论在 Cassandra 中使用 nodetool 检查集群健康状况。 Nodetool 是帮助监控集群和执行日常维护任务的监控工具之一。
我们将讨论三个通常用于检查集群健康状况的 nodetool 命令。
- 节点工具状态
- 节点工具信息
- 节点工具 tpstats
1.节点工具状态:
在 Cassandra 中,nodetool 状态命令非常有用。此命令使您能够检查集群节点的运行状况。 nodetool status 命令还可用于提供有关节点之间数据分布的信息。例如:
nodetool status 127.0.0.1
输出:
nodetool status 命令提供与节点有关的有价值的信息,如下所示。
- 地位 :
它会让您知道节点的状态,例如节点是启动还是关闭。 - 状态 :
它将让您知道节点的状态,以便节点处于正常/离开/加入/移动等状态。
例如,“UN”表示节点处于 UP 状态且处于正常状态。 - 地址 :
它会让你知道一个节点的地址。例如 – 如果您连接到本地主机 127.0.0.1,那么您的地址将是 127.0..0.1。 - 加载 :
它将让您知道节点中的数据负载。 - 代币:
它会让你知道令牌号码。 - 主机编号:
它会让你知道主机 ID。
2.节点工具信息:
在Cassandra中,运行nodetool info命令获取节点信息,如gossip状态(活跃与否)、磁盘负载、启动时间(生成)、正常运行时间、Key、行、计数器、chunk缓存信息、Percent repaired、Token信息(可选)和堆内存使用情况。
下面是一个例子:
nodetool info
输出:
3. nodetool tpstats :
在 Cassandra 中,nodetool tpstats 命令显示线程池的使用统计信息。这个命令在 Cassandra 中非常有用。 Cassandra 将任务分成多个阶段,每个阶段使用单独的队列和线程池。消息服务连接各个阶段。
此命令将为您提供线程池的概览统计信息。此命令提供有关线程池操作的每个阶段的信息。它显示了以下内容:
- 活动线程数。
- 等待线程池执行的请求数。
- 线程池已完成的任务数。
- 由于下一步线程池已满而被阻塞的请求数。
- 在此时间点之前,此线程池中的总阻塞请求数。
这是如何使用 Cassandra 架构执行此命令的方法。
当您刷新内存表或数据库压缩任何 SSTable 时,数据库会刷新 nodetool tpstats 命令提供的信息。
这是一个显示如何运行 nodetool tpstats 命令的示例:
nodetool tpstats 命令的输出显示与数据库中与任务关联的特定线程池相关的统计信息。当您对问题进行故障排除或调整数据库时,所有这些详细信息对您非常有用。