首页 > 解决方案 > solr 中的多线程

问题描述

当我运行 solr 5 及更高版本时,它在自己的 Jetty 容器中运行,不再在 tomcat 下运行。当我检索进程 id 并在给定的进程 id 上运行 top -p pid 时,我确实看到一个线程正在运行。

但是要知道这个线程产生了多少线程,如果我使用ps huH -p pid,我确实看到多个线程出现,链接到这个父 pid。这些是 solr 产生的多个线程吗?

这些线程是否提供查询/压缩索引....等?如果是这种情况,如果机器空闲,这些线程计数应该会下降。

有人可以对 solr 线程有所了解或将我指向正确的文档吗?

谢谢 SR0

标签: solr

解决方案


通过转到 Solr 管理页面下的“线程转储”窗格,您可以准确查看每个线程正在做什么:

Solr 仪表板中线程转储菜单项的位置,位于 Java 属性(第六项)下方

如果您打开此页面,您将获得在 Solr 的 JVM 中运行的所有线程的列表,您可以展开每个线程以查看它正在执行的任务的堆栈跟踪:

空闲 Solr 安装中的活动线程列表

从这些线程的名称中可以看出(.. 不仅仅是我屏幕截图中的那三个),它们正在执行各种任务 - 以qtpJetty 为前缀的线程,而以 为前缀的zk则负责 Zookeeper 操作。其他跟踪计划任务和触发器,一些执行搜索,一些可能正在运行优化或提交,一些可能正在索引文档(例如处理 Tika)等。

这些线程中的大多数都保留了下来,因为它们实现了必须始终运行的中心功能,例如监视 Zookeeper 的更改、搜索索引、跟踪计划任务等。保留它们并不是很昂贵任何一个。


推荐阅读