我有一个64位服务器,8 GB RAM,双四核CPU。没有资源可以达到100%(除了,我想,JVM - 对吧?)。
我需要为Solr索引数百万条记录,但该机器已投入生产。我认识到有第二台索引机器会有所帮助。
我应该专门为Solr设计第二个JVM实例吗?
现在,当我运行一个索引时,通常在200毫秒内提供的页面将在大约1.5秒内提供服务,有时更多......甚至可能会出现“服务不可用”错误。
我按如下方式调整了JVM堆:
-Xmx1024m
-XX:MaxPermSize256m
如果我正在追逐错误的解决方案,请允许我稍微拓宽景观。看来我不能影响Solr的索引速度。我以前在工作站上虚拟化的开发服务器上每小时索引大约150,000条记录。在具有更多可用硬件的生产环境中,我的索引速度完全相同。
如果没有数据来证明这一点,我认为我的JVM调整并没有加快索引速度,尽管它可能允许CF服务器继续提供页面服务。我必须说,索引速度非常慢,但我知道它不是数据访问层的功能。我将它从纯ORM重写为SQL存储过程支持的对象,认为这是减速(没有效果)。
答案 0 :(得分:3)
使用单独的实例索引索引,唯一的技巧是让正在运行的搜索实例重新读取更新的索引,在这种情况下,你设置一个master(索引器)和slave(搜索器)并做复制。这将使搜索者不会被打断,索引器将利用自己的JVM,包括自己的资源份额。
答案 1 :(得分:1)