Sphinx奇怪的報錯indexer crashed

擔心sphinx的內存不夠用,把conf裏面的mem_limit加到了4000M,結果報錯了: 

 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#相同,但單位是字節

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章