【问题标题】:Extremely high CPU load on ES and CassandraES 和 Cassandra 上的 CPU 负载极高
【发布时间】:2024-01-19 02:25:01
【问题描述】:

我们在一个非常大的系统上使用 ES 1.7.5 和 Cassandra 3.7 设置了 usergrid (2.1.0):12 台机器用于 UG,9 台用于 cassandra,9 台用于 elasticsearch。所有(虚拟)机器都有 16 个内核和 32 个 Gig ram。然而,即使有 3000 个并发用户,es 和 c* 服务器也会发疯并达到 100% 的 cpu 使用率。当 es cpu 达到峰值时,我们无法获取 /roles 集合,因此用户无法登录。当 c* cpu 达到峰值时,usergrid 无法连接到 c*,简单地将所有 http 请求静音。

磁盘或网络上没有 iwoaits。

我们的应用程序依赖于 usergrid 查询,所以我们做了大量的查询请求。但是,我没想到子系统会出现这样的 CPU 峰值。

感谢任何支持。

【问题讨论】:

    标签: elasticsearch cassandra usergrid


    【解决方案1】:

    花了将近 10 天的时间,解决方案来之不易。 Elasticsearch 的经验教训:

    1. 永远不要在 Elasticsearch 上使用 G1GC! (直到它成为默认值)
    2. 不惜一切代价避免使用来自 usergrid 的“包含”查询。
    3. 始终听取建议。

    Cassandra-Usergrid 通信仍然存在问题。每当一个节点出现故障(维护、更新等)时,usergrid 客户端都会打印连接错误,并且在大约 15 次尝试后,它们会静音所有通信。

    【讨论】: