为什么新的ElasticSearch Install运行这么多进程



我刚刚安装了ElasticSearch,根本没有加载任何数据。 htop显示了 ElasticSearch 运行一堆线程的过程。

查看顶部输出

为什么 ElasticSearch 要运行所有这些进程?它在做什么?

我知道您可以将htop配置为将所有线程分组到一行中。但这仍然没有回答为什么任何东西都在运行的问题。

简单的答案是,为了高效,ES 使用许多线程池来执行它需要做的许多事情。

您可能知道ES提供了一个非常强大的搜索引擎。因此,为了使潜在的大量用户能够有效地运行潜在的大量查询,ES 使用线程池来执行这项工作。

这还不是故事的结局。虽然所有这些用户可能会像疯子一样搜索,但其他用户或进程也可以同时索引潜在的大量数据。因此,ES 需要另一个线程池来处理它可以获得的许多索引请求。这些索引请求可以有两种形式:为单个文档编制索引,批量为多个文档编制索引。对于这两个索引过程,ES 使用两个不同的线程池。

这仍然不是故事的结局。当一些用户正在搜索而另一些用户正在索引数据时,可能正在运行一个备份过程(ES 称之为快照)。为此,还有另一个线程池。

等等。该列表并不详尽,但您可以相信 ES 有多个线程池来处理它需要处理的内容,并且它知道如何有效地执行此操作,因为它只会创建可用处理器可以处理的线程数。

您可以查看 ES 正在管理的线程池的完整列表,您可能会更好地了解它在做什么。您还可以使用 /_cat/thread_pool/_nodes/hot_threads 端点,以便更好地可视化这些线程正在执行的操作。

相关内容

  • 没有找到相关文章

最新更新