【问题标题】:Need help in setting production environment for 300 million records elasticsearch需要帮助设置 3 亿条记录的生产环境 elasticsearch
【发布时间】:2016-10-27 06:03:08
【问题描述】:

我是弹性搜索的新手。我正在设置生产环境中进行 POC。我需要帮助才能做到这一点。

1)我们在设置环境时需要考虑哪些生产参数?

3) 设置生产就绪环境需要哪些水印?

有两个进程正在运行实时服务器(提高性能,例如:性能 20 到 40 毫秒),批处理服务器(提高吞吐量。例如:1 小时内 1 台服务器将处理 200 个事务)。

实时服务器将有 8 个专用服务器节点。批处理将有 12 台服务器。

如何在实时服务器和批处理节点之间分配请求,以免在批处理过程中影响实时服务器的性能。如何在不影响性能的情况下扩展应用程序。

单台服务器实时服务器交易 250K/小时(我们有 8 台在线服务器) 单台服务器批处理 1MN/小时(我们有 8 个批处理服务器)

以上场景设置生产环境需要什么条件?

【问题讨论】:

    标签: search elasticsearch lucene


    【解决方案1】:

    首先我要说一定要阅读 Elasticsearch:关于生产部署的权威指南一章: https://www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html

    影响所需设置和部署拓扑的因素太多,无法提供详尽的答案。索引和服务 3 亿条推文与 3 亿篇科学论文有很大不同。全文搜索与数字聚合和分析非常不同。真正确定的唯一方法是测试它(并监控它!),尽可能使用接近真实的数据和访问模式。

    此外,我对您的“批处理”服务器和“实时”服务器有点困惑,但对于混合工作负载,您有多种选择。为了获得最佳隔离效果,请使用两个完全独立的集群。或者,如果您有单独的“batch”和“live”索引,但希望能够将索引从“live”移动到“batch”,您可以使用Shard Allocation Filtering 来控制每个索引的分片在哪些服务器上运行。这将分离数据,在许多情况下这已经足够了。好处是这些规则可以动态更改,ES 会在你的分片中移动以匹配。

    根据您的工作负载,如果“实时”请求命中“批处理”客户端节点,客户端(协调员)角色可能会遇到麻烦,在这种情况下,只有一个或多个客户端(无数据)可能很有用分配给仅服务“实时”请求的节点(将您的“实时”应用程序指向这些节点),另一个分配给仅服务“批处理”请求(将您的“批处理”应用程序指向这些节点)。您在此处的选择还取决于客户的类型。

    不幸的是,您的问题非常笼统,答案必须是“使用您的特定工作负载进行测试”

    【讨论】:

    • 实时服务器在这里被视为在线应用程序搜索请求,批处理被视为批量请求,请求将采用文件格式 下面是我们用于测试的示例设置 我们需要建议在生产中 文件系统存储大小:85.0GB 85.4GB 文档:336,954,885 336,954,885 索引活动搜索 - 查询:14.83 毫秒 14 毫秒搜索 - 获取:1.48 毫秒 1.51 毫秒 刷新:2.14 毫秒 41.04 毫秒 内存堆大小:2.6 GB 2.8 GB 堆使用百分比:44.2 % 61.2%
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2017-02-08
    • 2011-10-23
    • 2018-08-31
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多