尝试控制Lucene索引编辑过程中的CPU占用
使用Lucene过程中一直以来比较痛苦的一件事就是在它执行Optimize方法是会霸占系统大量资源(说“独占”都不为过),一个29万条数据,4G+的索引,在我的笔记本上Optimize的时间长达32分钟,这期间我几乎只能去台式机上干活。很遗憾的是起码它开放的API我还没找到控制CPU占用的方法,事实上,想象中也比较困难,因为写入磁盘IO的事情,可是计算的动作就是要消耗CPU。最终在一个外国人的邮件回复中得到了一个结论,那就是“不能控制CPU资源的占用”:
I think I answered that question just the other day.... privately...
No, there is nothing in Lucene to help you with CPU utilization.
However, if you are running this on a UNIX box of some kind, you can (re)nice the process and thus lower its priority, giving other processes more time with the CPU. Windows may have something similar.
暂时只能这样了,可是如果Lucene索引维护的进程和网站的应用进程在同一个服务器上,维护Lucene索引肯定会对网站正常的应用产生影响,恐怕这也是为什么很多人设计方案时将维护索引的时间设定在凌晨两点到四点之间的原因了吧。
浙公网安备 33010602011771号