Solr中的多线程

时间:2019-06-28 19:03:42

标签: solr

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

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

这些线程是否服务于查询/压缩索引...等等?在这种情况下,如果计算机空闲,则这些线程计数应该减少。

有人可以在solr线程上发表一些看法或将我指向正确的文档吗?

谢谢 SR0

1 个答案:

答案 0 :(得分:1)

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

The location of the Thread dump menu item in the Solr Dashboard, right beneath Java Properties (the sixth item)

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

List of threads active in an idle Solr installation

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

由于这些线程实现了必须一直运行的中央功能,因此大多数线程都可以保留,例如监视Zookeeper的更改,对索引进行搜索,跟踪已调度的任务等。也不是很贵。