Multithreading 有没有办法在sphinxsearch上预启动线程

Multithreading 有没有办法在sphinxsearch上预启动线程,multithreading,sphinx,Multithreading,Sphinx,我们拥有大型sphinx分布式集群, 单个前端分布式索引,具有3个后端服务器,每个服务器具有小型本地分布式索引 在流量高峰期间,后端服务器上的平均负载有时会高达80 同时,我可以看到斯芬克斯·霍斯(sphinx hawe)产生了150-200条线程,很快下降到50条,然后又回到150-200条,然后又下降到50条,以此类推 有没有办法“预处理”/“预启动”这些线程?e、 类似于apache的服务器 事实上,我们使用专用硬件,所以如果sphinx在空闲时使用更多内存,我们就不会有问题 在后端服务器

我们拥有大型sphinx分布式集群,
单个前端分布式索引,具有3个后端服务器,每个服务器具有小型本地分布式索引

在流量高峰期间,后端服务器上的平均负载有时会高达80

同时,我可以看到斯芬克斯·霍斯(sphinx hawe)产生了150-200条线程,很快下降到50条,然后又回到150-200条,然后又下降到50条,以此类推

有没有办法“预处理”/“预启动”这些线程?e、 类似于apache的服务器

事实上,我们使用专用硬件,所以如果sphinx在空闲时使用更多内存,我们就不会有问题

在后端服务器上,我们使用实时索引,无法切换到预工作模型


我们拥有完全的根访问权限,因此我们也可以调整linux系统设置。

仅在2.3 workers=thread\u池中,在开始时创建固定数量的工作线程,即1.5*检测到的内核或max\u children指令。线程被放在一个池下。传入连接由单独的线程处理,该线程将查询分配给工作池。旧的workers=threads为每个查询创建一个线程。

只有在2.3 workers=thread\u池中才会在开始时创建固定数量的工作线程,即1.5*检测到的核心或max\u children指令。线程被放在一个池下。传入连接由单独的线程处理,该线程将查询分配给工作池。旧workers=threads为每个查询创建一个线程