如何通过Python连接器获取Datastax Cassandra单查询的CPU时间、内存时间及CPU使用率?
如何通过DataStax Python连接器获取Cassandra查询的CPU/内存指标
DataStax Python连接器本身不直接提供查询级别的CPU时间、内存占用这类细粒度指标,因为这类数据属于Cassandra节点的系统执行层面统计,连接器核心负责请求通信与结果返回。但可以通过以下两种途径获取相关信息:
方式一:利用Cassandra内置机制收集服务端执行数据
Cassandra自带系统表与查询跟踪功能,可间接获取查询执行的相关统计:
- 查询系统表:通过
system_schema.queries表能获取查询的执行次数、总延迟等基础数据,但无直接CPU/内存时间;system.local或system.peers的关联表可提供节点级统计,需自行关联到具体查询。 - 开启查询跟踪:能记录查询执行全流程的阶段细节,可从中提取执行耗时等线索:
注意:跟踪信息不会直接给出CPU/内存精确数值,但能反映查询在服务端各节点的执行耗时分布。from cassandra.cluster import Cluster cluster = Cluster(['your-node-ip']) session = cluster.connect('your_keyspace') # 执行查询并开启跟踪 with session.execute_async("SELECT * FROM your_table WHERE id = 1", trace=True) as future: result = future.result() trace = future.get_query_trace() # 遍历跟踪事件,查看执行阶段信息 for event in trace.events: print(f"{event.source}: {event.description} | 时间戳: {event.timestamp}")
方式二:通过Python工具统计客户端资源消耗
如果需要监控Python进程执行查询时的本地资源占用,可以用psutil库实现:
- 安装依赖:
pip install psutil - 示例代码:
注意:此方法统计的是客户端Python进程的资源消耗,而非Cassandra服务端执行查询的资源占用。import psutil from cassandra.cluster import Cluster import time def get_process_metrics(): process = psutil.Process() return { 'cpu_percent': process.cpu_percent(interval=None), 'memory_rss': process.memory_info().rss # 常驻内存,单位字节 } cluster = Cluster(['your-node-ip']) session = cluster.connect('your_keyspace') # 记录执行前状态 pre_metrics = get_process_metrics() start = time.time() # 执行目标查询 session.execute("SELECT * FROM your_table WHERE id = 1") # 记录执行后状态并计算差值 end = time.time() post_metrics = get_process_metrics() cpu_time = (post_metrics['cpu_percent'] / 100) * (end - start) memory_diff = post_metrics['memory_rss'] - pre_metrics['memory_rss'] print(f"查询CPU时间: {cpu_time:.2f} 秒") print(f"查询内存变化: {memory_diff / (1024*1024):.2f} MB") print(f"查询期间CPU使用率: {post_metrics['cpu_percent']} %")
补充说明
若需要服务端精确的查询级CPU/内存指标,Cassandra本身未直接暴露这类细粒度数据,可尝试:
- 启用Cassandra的JMX监控,获取节点级CPU、内存指标,再结合查询执行时间窗口做关联分析。
- 使用第三方监控工具(如Prometheus + Grafana)配合Cassandra Exporter收集节点资源数据,再结合查询日志映射到具体查询。
内容的提问来源于stack exchange,提问作者Lucas Emanuel
相关产品推荐
相关产品推荐

