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

时间:2015-02-04 20:54:43

标签: solr cassandra datastax-enterprise

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

我们目前有6台服务器配置为运行DSE的“搜索”工作负载。

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

我很惊讶我们目前正在运行所有节点作为Solr节点,而我仍然可以将它们用作Cassandra(实时查询) - 所以从技术上讲它们都是?

“服务/最佳实践”告诉我: “请替换当前使用没有vnode的节点启用vnode的搜索节点。”

我们理想的情况是: 一个。将所有6台服务器用作cassandra存储(+实时查询) 湾使用1个或2个SAME服务器作为Solr Search。

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

任何人都可以解释/建议吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

  

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

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

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

答案 1 :(得分:3)

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

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

正如RB所提到的,Solr的CPU消耗将更高。但是,我 经常看到搜索DC的节点比C *节点更少,更强大。这又取决于您的工作量以及您要编制索引的数据量。

注意: DSE搜索效果提示 性能的主要经验是尝试将所有DSE索引放在OS页面缓存中,这样您可能需要比仅使用Cassandra的节点更多的RAM来获得最佳性能。

DSE搜索和工作负载隔离:

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

这一建议背后的原因是许多DSE客户拥有超紧密的微秒级和非常大的工作负载。如果您有更宽松的SLA和更小的工作负载,您可以在相同的节点(相同的DC)中运行搜索和c *。您最好的选择是将其与您的硬件上的工作负载进行POC,并查看其运行情况。

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

不是真的,你很可能想要打开整个DC上的搜索,或者根本不打开。原因如下:

  1. DSESimpleSnitch会自动将它们拆分为单独的DC,因此您必须使用另一个小报。
  2. 如果没有足够的节点和正确的数据副本,您将无法在Solr DC上找到端点错误。请记住,Cassandra仍然负责复制,每个节点上的Solr核心只会索引该节点上的相应数据。
  3. 启用所有6中的搜索,但随时可以在所有搜索中指导c *查询,如果需要,只能在2处搜索查询。不知道为什么你会这么想,你会清楚地看到这两个节点在OpsCenter中的负载会更高。

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

    DSE搜索的Vnodes与非Vnode

    关于上述评论的问题。建议不要在DSE搜索中使用Vnode,因为这会导致性能下降。具体来说,前4.6是一个很大的打击,约300%。但截至4.6,搜索查询的性能仅为30%。 num_vnodes越大,命中越大。

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