Sphinx 怠速后的斯芬克斯性能

Sphinx 怠速后的斯芬克斯性能,sphinx,Sphinx,我正在编写一个web应用程序,用于搜索大约一百万个文档 性能非常好,一个典型的查询只需要0.05秒,但是如果在几个小时内没有查询,那么它会突然花费更长的时间——几个查询的时间会增加1000倍,然后恢复正常。查询日志如下所示: [Wed Mar 7 17:23:55.937 2012] 0.221 sec [Wed Mar 7 17:32:00.726 2012] 0.012 sec [Wed Mar 7 17:32:00.984 2012] 0.052 sec [Wed Mar 7

我正在编写一个web应用程序,用于搜索大约一百万个文档

性能非常好,一个典型的查询只需要0.05秒,但是如果在几个小时内没有查询,那么它会突然花费更长的时间——几个查询的时间会增加1000倍,然后恢复正常。查询日志如下所示:

[Wed Mar  7 17:23:55.937 2012] 0.221 sec 
[Wed Mar  7 17:32:00.726 2012] 0.012 sec 
[Wed Mar  7 17:32:00.984 2012] 0.052 sec 
[Wed Mar  7 17:32:01.416 2012] 0.222 sec 
[Thu Mar  8 09:15:10.418 2012] 10.147 sec
[Thu Mar  8 09:16:00.560 2012] 48.262 sec
[Thu Mar  8 09:16:55.429 2012] 54.153 sec
[Thu Mar  8 09:17:54.454 2012] 0.012 sec 
[Thu Mar  8 09:17:54.713 2012] 0.052 sec 
[Thu Mar  8 09:17:55.141 2012] 0.218 sec 
我猜可能是我繁忙的服务器在Sphinx未使用的时候交换了它的内存

我如何解决这个问题


我曾考虑过每分钟编写假查询脚本,但这似乎是一个相当丑陋的黑客行为。

这台服务器上的磁盘速度有多快

我认为这是因为必须返回磁盘获取索引。一旦被访问几次,操作系统就会缓存这些文件

可能值得考虑使用SSD磁盘。一个小的SSD磁盘-足够大的斯芬克斯索引-是相对便宜的今天

如果这真的是内存交换,那也表明磁盘速度较慢。但这也是需要解决的问题。你们能给服务器增加更多的内存吗?(甚至将交换分区放在新安装的SSD磁盘上:)


顺便说一句,看看交换是否发生在穆宁(或仙人掌等)身上。

+1。好问题。嗯,一段时间内的自动升温查询在这里有帮助吗?不确定。您是否在sphinx配置中使用preopen_索引。这告诉sphinx在内存中加载索引,而不依赖于操作系统。+1不阅读答案,因为barryhunter是sphinx的权威。嗯,这很好。但我并没有真正回答这个问题。只需提供可能的原因-以及如何升级以解决问题。首先还是要找到真正的原因。是什么导致了这些查询的速度变慢。我将一些其他服务移出了服务器,从而释放了大量额外内存。问题立即消失了,不再有缓慢的查询。谢谢