cassandra - 如何找到导致 Cassandra 服务压力或负载的客户端?
问题描述
我管理应用程序开发人员使用的 Cassandra 集群。最近有一种情况,Cassandra 集群定期(每 5 分钟)受到压力。
如何找出导致压力的客户端 (IP)?
解决方案
几个选项。你
- 期间可以使用
nodetool toppartitions
(未来版本中的profileload)。profileload 可用时将有助于确定一些场景。 - 可以使用
nodetool settraceprobability 0.01
或一些小的 % 并查看 system_trace.sessions 和 events 表以查看正在执行的查询。 - 可以
nodetool clientstats
用来查看连接的客户端和请求数量,因此如果您查看该时段之前和之后的时间,您可能会根据请求量计算出哪个客户端对您的影响最大。如果客户端正在发送大量请求或查询大量内容(即将获取大小设置为 100000,选择大量大 blob 或其他错误),这将更加困难。 - 也可以使用 tcpdump 或 wireshark - 有可用的 CQL 解析器。
问题也可能是 GC,这最终更有可能是由每 5 分钟一次的查询造成的,而您希望执行上述操作之一。但是检查日志可能有助于立即缩小范围(查找 GCInspector)。查看日志对于识别其他事情也很有用,例如磁盘是否阻塞并导致备份突变和 GC 压力。
推荐阅读
- mongodb - MongoDB Scala 驱动程序 - 设置字段的问题
- python - 在 Python 中,“调用函数的主要部分”是什么?
- swift - Firebase 实时数据,如何将 .child 更改为用户输入的文本字段值
- c# - avalon 编辑器中的工具提示位置
- html - 如何避免 iphone 的引导输入字段上的额外边框顶部厚度?
- automated-tests - 如何使用谷歌浏览器在无头模式下运行 botium-cli
- laravel - 与用户 laravel 的特许经营/分支机构关系
- php - INNER JOIN 与多个表
- reactjs - 从外部文件导入路由时,Rect Js路由器停止
- redis - HA redis 解决方案,集群或哨兵