【问题标题】:How to use Sphinx Search with concurrency?如何将 Sphinx 搜索与并发一起使用?
【发布时间】:2021-11-08 22:51:05
【问题描述】:

我有一个由 SphinxSearch 索引的大型数据库(100M 行)。每次搜索需要 0.1-0.5s。但是,如果我同时进行 10 次搜索,它们平均需要 20 秒。

这是 SphinxSearch 的预期行为吗?

我应该调整配置还是转移到另一个搜索引擎以实现并发?

我的配置文件很简单:

searchd
{
    listen          = 9312
    listen          = 9306:mysql41
    pid_file        = /var/searchd.pid
    read_timeout        = 30
    log         = /var/log/sphinxsearch/searchd.log
    query_log       = /var/log/sphinxsearch/query.log
}

【问题讨论】:

    标签: full-text-search search-engine sphinx


    【解决方案1】:

    这是 SphinxSearch 的预期行为吗?

    这在很大程度上取决于 CPU 的数量。如果您有超过 10 个物理 CPU,那么通过将并发性从 1 增加到 10 来将延迟从 0.5 秒降低到 20 秒肯定是不期望的。在这种情况下,首先要确保所有 CPU 在并发负载下都处于忙碌状态。如果不是 - 取决于您的 Sphinx 版本和多任务模式,让它运行更多线程。

    我应该调整配置还是转移到另一个搜索引擎以实现并发?

    我推荐Manticore Search为:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多