监测Cassandra群集

监测Cassandra群集

了解Cassandra集群的性能特征对于诊断问题和规划能力至关重要。

Cassandra通过Java Management Extensions(JMX)公开一些统计和管理操作。JMX是一种Java技术,提供用于管理和监视Java应用程序的服务工具。可以使用JMX监视或操作Java应用程序公开的任何统计信息或操作作为MBean。

在正常操作期间,Cassandra会输出您可以使用兼容JMX的工具进行监控的信息和统计信息,例如:

  • Cassandra的nodetool

  • JConsole的

使用相同的工具,您可以执行某些管理命令和操作,例如nodetool flush或nodetool repair。

使用nodetool进行监控

nodetool作用是用于监测Cassandra和执行常规数据库操作的命令行界面。它通常在一个可操作的Cassandra节点运行。

nodetool支持最重要的JMX度量标准和操作,还包括Cassandra管理的其他有用命令,如proxyhistogram命令。此示例在本地计算机上的三个节点群集上运行4,500个insert和45,000个select之后,显示nodetool proxyhistogram的输出。

$ nodetool proxyhistograms

proxy histograms
Percentile      Read Latency     Write Latency     Range Latency
                    (micros)          (micros)          (micros)
50%                  1502.50            375.00            446.00
75%                  1714.75            420.00            498.00
95%                 31210.25            507.00            800.20
98%                 36365.00            577.36            948.40
99%                 36365.00            740.60           1024.39
Min                   616.00            230.00            311.00
Max                 36365.00          55726.00          59247.00

有关节点及其当前状态的摘要,请使用nodetool status命令。例如:

$ nodetool status

Note: Ownership information does not include topology; for complete information, specify a keyspace
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns    Host ID                               Rack
UN  127.0.0.1  47.66 KB   1       33.3%   aaa1b7c1-6049-4a08-ad3e-3697a0e30e10  rack1
UN  127.0.0.2  47.67 KB   1       33.3%   1848c369-4306-4874-afdf-5c1e95b8732e  rack1
UN  127.0.0.3  47.67 KB   1       33.3%   49578bf1-728f-438d-b1c1-d8dd644b6f7f  rack1

nodetool提供查看表,服务器度量标准和压缩统计信息的详细度量标准的命令:

  • nodetool tablestats:显示每个表和keyspace的统计信息。

  • nodetool tablehistograms 提供关于表的统计信息,包括读/写延迟,行大小,列数和SSTable数量。

  • nodetool netstats提供有关网络操作和连接的统计信息。

  • nodetool tpstats提供有关线程池中Cassandra操作的每个阶段的活动,待处理和已完成任务的数量的统计信息。

使用JConsole进行监控

JConsole是用于监控Java应用程序(如Cassandra)的JMX兼容工具。它包含在Sun JDK 5.0及更高版本中。JConsole使用Cassandra公开的JMX度量和操作,并将其显示在组织良好的GUI中。对于监控的每个节点,JConsole提供了以下六个单独的选项卡视图:

  • Overview
    显示有关Java VM和监视值的概述信息。

  • Memory
    显示有关内存使用的信息。

  • Threads
    显示关于线程使用的信息。

  • Classes
    显示有关类加载的信息。

  • VM Summary
    显示有关Java虚拟机(VM)的信息。

  • Mbeans
    显示有关MBeans的信息。

“Overview”和“Memory”选项卡包含对Cassandra开发人员非常有用的信息。“Memory”选项卡允许您比较堆和非堆内存的使用情况,并提供一个控件来立即执行Java垃圾回收。

对于特定的Cassandra度量和操作,JConsole最重要的部分是MBeans选项卡。此选项卡列出了以下Cassandra MBean:

  • org.apache.cassandra.auth
    包括权限缓存。

  • org.apache.cassandra.db
    包括缓存,表格度量和压缩。

  • org.apache.cassandra.internal
    内部服务器操作,如八卦,提示切换和Memtable值。

  • org.apache.cassandra.metrics
    包括有关CQL,客户端,密钥空间,读取修复,存储和线程池等主题的指标。

  • org.apache.cassandra.net
    节点间通信包括FailureDetector,MessagingService和StreamingManager。

  • org.apache.cassandra.request
    与读取,写入和复制操作相关的任务。

  • org.apache.cassandra.service
    包括GCInspector。

当您选择一个MBean时,其MBeanInfo和MBean描述符将显示在右侧,任何属性,操作或通知都会显示在其下面的树中。例如,选择并展开org.apache.cassandra.db MBean以查看表的可用操作会导致显示如下:

如果您选择使用JConsole监视Cassandra,请记住,JConsole消耗大量的系统资源。因此,DataStax建议在远程计算机上运行JConsole,而不要在与Cassandra节点相同的主机上运行JConsole。

JConsole CompactionManagerMBean公开压缩指标,可以指示何时需要向集群添加容量。

压缩指标

监控压缩性能是了解何时向群集添加容量的一个重要信息。以下属性通过CompactionManagerMBean公开:

压实指标

属性描述
BytesCompacted自服务器[重新]启动以来压缩的总字节数
CompletedTasks自服务器[重新]启动以来完成的压缩数
PendingTasks估计剩余的压缩次数
TotalCompactionsCompleted自服务器[重新]启动以来的压缩总数

线程池和读/写延迟统计信息

Cassandra为不同的执行阶段维护不同的线程池。每个线程池提供活动,挂起和完成的任务数量的统计信息。未决任务列增加的这些池的趋势表明何时增加额外的容量。建立基准后,在待处理任务列中配置超出正常范围的报警。在命令行上使用nodetool tpstats来查看下表中显示的线程池详细信息。

读/写延迟指标

Cassandra通过StorageProxyMBean跟踪在服务器级别读取,写入和分片操作的延迟(平均值和总计)。

由nodetool tpstats报告的线程池统计信息

属性描述
AntiEntropyStage与维修有关的任务
CacheCleanupExecutor与缓存维护相关的任务(计数器缓存,行缓存)
CompactionExecutor与压实有关的任务
CounterMutationStage与领先的计数器写入有关的任务
GossipStage有关八卦协议的任务
HintsDispatcher与发送提示相关的任务
InternalResponseStage与其他内部任务响应相关的任务
MemtableFlushWriter与清除memtables相关的任务
MemtablePostFlush memtable刷新完成后与维护相关的任务
MemtableReclaimMemory与回收memtable内存有关的任务
MigrationStage与模式维护相关的任务
MiscStage与各种任务相关的任务,包括快照和删除主机
MutationStage与写入相关的任务
Native-Transport-Requests与来自CQL的客户端请求相关的任务
PendingRangeCalculator任务涉及在引导/解除后重新计算范围所有权
PerDiskMemtableFlushWriter_ *有关将memtables刷新到给定磁盘的任务
ReadRepairStage与执行读取修复相关的任务
ReadStage与读取有关的任务
RequestResponseStage来自节点内请求的回调任务
Sampler与抽样统计有关的任务
SecondaryIndexManagement与二级索引维护有关的任务
ValidationExecutor与验证压缩相关的任务
ViewMutationStage与维护物化视图有关的任务

表统计

对于单个表,ColumnFamilyStoreMBean提供与StorageProxyMBean相同的通用延迟属性。与StorageProxyMBean不同,ColumnFamilyStoreMBean具有许多其他统计信息,这些统计信息对于监视性能趋势非常重要。其中最重要的是:

表统计

属性描述
MemtableDataSize此表格数据消耗的总大小(不包括元数据)
MemtableColumnsCount返回memtable中存在的总列数(跨所有键)
MemtableSwitchCountmemtable已被刷新多少次
RecentReadLatencyMicros自上次调用此bean以来的平均读取延迟
RecentWriterLatencyMicros自上次调用此B​​ean以来的平均写入延迟
LiveSSTableCount此表的实时SSTables的数量

最近的读取延迟和写入延迟计数器对确保操作以一致的方式发生很重要。如果这些计数器在一段时间保持平稳之后开始增加,则可能需要向群集添加容量。

您可以设置阈值并监控LiveSSTableCount,以确保给定表的SSTable数量不会太多。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值