0

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

磁盘或网络上没有 iwoaits。

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

任何支持表示赞赏。

4

1 回答 1

0

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

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

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

于 2016-12-16T08:36:51.223 回答