运行 同一物理节点上的搜索工作负载和 Cassandra 工作负载

Running Search workload and Cassandra workload on the same physical node

似乎找不到这个明显问题的答案。

我们目前有 6 台服务器配置为 "Search" 工作负载 运行ning DSE。

我的问题是: 是否可以 运行 Search (Solr) 和 Cassandra 在同一个物理盒子上? (不)可能/(不)推荐?

我很困惑,我们目前 运行 将所有节点都作为 Solr 节点,但我仍然能够将它们用作 Cassandra(实时查询)——所以从技术上讲,这两者兼而有之?

"Services /Best Practice" 告诉我: "Please replace the current search nodes that have vnodes enabled with nodes without vnodes."

我们的理想情况是: 一个。使用所有 6 个服务器作为 cassandra 存储(+ 实时查询) b.使用 1 或 2 个相同的服务器作为 Solr 搜索。

我发现唯一与我们想要的有点相似的文档是 - http://www.datastax.com/documentation/datastax_enterprise/4.6/datastax_enterprise/deploy/deployWkLdSep.html 但据我所知,它仍然说我需要 物理上 拆分负载,这意味着为 cassandra 提供 4 个服务器,为 solr/search 提供 2 个节点?

任何人都可以 explain/suggest 什么吗?

谢谢!

Is it possible to run Search (Solr) and Cassandra on the same physical box? (Not) Possible / (Not) Recommended?

是的,这就是 DSE 搜索的工作方式,Cassandra 和 Solr 运行 在同一个进程中,具有两者的全部功能。

Solr 使用的 CPU 比 Cassandra 多,因此您需要比专用 Cassandra 节点更多的 Solr 节点。您将设置单独的 Cassandra 和 Solr 数据中心来划分工作负载类型。

DSE 搜索 - 同一节点上的 C* 和 Solr:

正如 Rock Brain 提到的,DSE 搜索将 运行 Solr 和 Cassandra 在同一节点上。更具体地说,它将 运行 它放在同一个 JVM 上。这具有堆含义。建议将堆增加到 14gb 而不是 c* 只有 8gb。

正如 RB 还提到的,CPU 使用 Solr 会消耗更多。但是,我 经常看到 Search DC 的节点比 C* 节点更少、更强大。同样,这取决于您的工作量和索引的数据量。

注意: DSE 搜索性能提示 性能的主要经验法则是尝试将所有 DSE 索引放入 OS 页面缓存,因此您可能需要比仅 Cassandra 节点更多的 RAM 以获得最佳性能。

DSE 搜索和工作负载隔离:

您会在 DataStax 文档中找到,我们建议您 运行 为您的 cassandra 工作负载和搜索或分析工作负载分离数据中心。这基本上可以防止搜索驱动的争用影响您的 cassandra 摄取。

此建议背后的原因是许多 DSE 客户拥有超紧的微秒 sla 和非常大的工作负载。如果您有更宽松的 SLA 和更小的工作负载,您可以在相同的节点(相同的 DC)中使用 运行ning 搜索和 c*。最好的办法是用硬件上的工作负载对其进行概念验证,看看它的性能如何。

我可以只在 6 个 DSE 节点中的 2 个上激活 DSE 搜索吗?

不一定,您很可能想在整个 DC 上打开搜索或根本不打开搜索。原因如下:

  1. DSESimpleSnitch 会自动将它们分成单独的 DC,因此您必须使用另一个告密者。
  2. 如果没有足够的节点和正确的数据副本,您将在 Solr DC 上遇到无法找到端点的错误。请记住,Cassandra 仍然负责复制,每个节点上的 Solr 核心只会索引该节点上的相应数据。

在所有 6 个中打开搜索,但如果需要,请随意在所有这些中直接使用 c* 查询,并仅在 2 个中搜索查询。虽然不确定您为什么要这样做,但您会清楚地看到这 2 个节点在 OpsCenter 中将承受更高的负载。

请记住,从 DSE 4.6 开始,您现在可以利用搜索查询 right from CQL

DSE 搜索的 Vnode 与非 Vnode

针对您对上述评论的提问。不建议将 Vnode 用于 DSE 搜索,因为这会影响性能。具体来说,4.6 之前的命中率很高,约为 300%。但从 4.6 开始,搜索查询的性能下降仅为 30%。 num_vnodes 越大命中越大

您可以 运行 在一个 DC 上使用 vnode,在另一个 DC 上使用单个令牌。默认情况下,DSE 将 运行 单个令牌。