为什么新的ElasticSearch Install会运行如此多的进程?

时间:2016-01-28 20:51:51

标签: elasticsearch htop

我刚刚安装了ElasticSearch并且根本没有加载任何数据。 htop显示ElasticSearch正在运行一堆线程。

View htop output

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

我知道您可以配置htop将所有线程组合成一行。但这仍然没有回答为什么一切都在运行的问题。

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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

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