首页 > 解决方案 > 如何找到导致 Cassandra 服务压力或负载的客户端?

问题描述

我管理应用程序开发人员使用的 Cassandra 集群。最近有一种情况,Cassandra 集群定期(每 5 分钟)受到压力。

如何找出导致压力的客户端 (IP)?

标签: cassandra

解决方案


几个选项。你

  • 期间可以使用nodetool toppartitions(未​​来版本中的profileload)。profileload 可用时将有助于确定一些场景。
  • 可以使用nodetool settraceprobability 0.01或一些小的 % 并查看 system_trace.sessions 和 events 表以查看正在执行的查询。
  • 可以nodetool clientstats用来查看连接的客户端和请求数量,因此如果您查看该时段之前和之后的时间,您可能会根据请求量计算出哪个客户端对您的影响最大。如果客户端正在发送大量请求或查询大量内容(即将获取大小设置为 100000,选择大量大 blob 或其他错误),这将更加困难。
  • 也可以使用 tcpdump 或 wireshark - 有可用的 CQL 解析器。

问题也可能是 GC,这最终更有可能是由每 5 分钟一次的查询造成的,而您希望执行上述操作之一。但是检查日志可能有助于立即缩小范围(查找 GCInspector)。查看日志对于识别其他事情也很有用,例如磁盘是否阻塞并导致备份突变和 GC 压力。


推荐阅读