我们已经从lucene 2.4.1迁移到lucene 6.2.1,并观察到与lucene 2.4.1相比,在索引数据时,CPU的峰值相对较高。对于约130万条记录(一条线 - 最多40个字符),CPU的加标率高达70%,而在lucene 2.4.1中则仅为9.26%。正在使用的机器有6个核心(其物理设备(unix系统)而不是VM)
通过分析器(Visual VM),我们看到fsync实用程序占用了更多的CPU周期。(怀疑高CPU的原因不确定)
任何指针都可以克服这个问题?是否在lucene 6.2.1中预期了行为?
感谢。
答案 0 :(得分:0)
fsync是一个阻塞操作,不使用CPU但等待IO完成。 Profiler仅测量时间,而不是cpu使用情况。
lucene 2.4很老了,很多都改变了。例如,默认情况下启用压缩,仅此一项就可以解释更高的CPU使用率。CPU利用率也没有任何意义,它只是意味着CPU不等待别的东西 - 这是一件好事。您应该查看索引数据集所需的时间。