Sphinx奇怪的报错indexer crashed

担心sphinx的内存不够用,把conf里面的mem_limit加到了4000M,结果报错了: 

Sphinx奇怪的报错indexer crashed_第1张图片

 collect_hits: mem_limit=-2097152 kb too low, increasing to -118752 kb
*** Oops, indexer crashed! Please send the following report to developers.

改到小一点的800M就不报错

 

官方文档中找到这么一段话,原文和译文如下:

mem_limit----------------- Indexing RAM usage limit. Optional, default is 32M.Enforced memory usage limit that the indexer will not go above. Can bespecified in bytes, or kilobytes (using K postfix), or megabytes (usingM postfix); see the example. This limit will be automatically raised if setto extremely low value causing I/O buffers to be less than 8 KB; the exactlower bound for that depends on the indexed data size. If the buffers areless than 256 KB, a warning will be produced.Maximum possible limit is 2047M. Too low values can hurt indexing speed,but 256M to 1024M should be enough for most if not all datasets. Settingthis value too high can cause SQL server timeouts. During the documentcollection phase, there will be periods when the memory buffer is partiallysorted and no communication with the database is performed; and thedatabase server can timeout. You can resolve that either by raisingtimeouts on SQL server side or by lowering mem_limit.Example:| mem_limit = 256M| # mem_limit = 262144K # same, but in KB| # mem_limit = 268435456 # same, but in bytes.

    索引RAM使用限制。可选的,默认32M。强制内存使用限制后索引器不会超出。可以以字节或千字节(使用K postfix)或兆字节(使用M postfix)这些单位指定这个配置; 看到这个例子。如果设置为非常低的值导致I/O缓冲区小于8KB,则会自动提高此限制; 确切地说,这取决于索引的数据大小。如果缓冲区不超过256KB,将会产生警告。最大可能的限制是2047M。值太低会伤害索引速度,但如果不是全部数据集,256M到1024M就足够了。将此值设置得过高可能会导致SQL Server超时。在文档收集阶段,会有一段时间内存缓冲区被部分分配,并且不会与数据库进行通信。数据库服务器可能超时。你可以通过在SQL服务器端调高时间或者通过降低mem_limit来解决这个问题mem_limit = 256M | #mem_limit = 262144K#相同,但以KB |为单位#mem_limit = 268435456#相同,但单位是字节

你可能感兴趣的:(sphinx)