我有性能方面的问题,并希望对Multi Core或多Multi Instance(with different port)最适合的build议?
我的情况第一:
目前我正在运行Solr与多个核心和运行正常。 只有一个问题,有时它抛出堆内存时处理facets领域,之后,我不得不重新启动solr。 (为了减less重新启动的次数,我用大内存启动Solr:java -Xms1000M -Xmx8000M -jar start.jar)
我有亚马逊EC2实例与8core-2.8GHtz / 15GB RAM与优化的硬盘。
我有许多数据库表(大约100),必须创build不同的架构(导致创build不同的核心)。
每个表格都有数百万个文档,每个文档有7-9个索引字段和10-50个存储字段。
我的门户网站应该处理非常高的stream量(目前我有10个请求/秒,可能会增加到50-100 /秒)。 我知道“Solr”可以处理这个问题,但只是告诉你,我担心的是性能最小的问题
通过PHP和CURLsearchSolr到特定的核心,所以不存在search不同的Solr实例的问题。
题:
据我所知, Solr一次处理一个请求 。 所以我认为如果我创build了solr的多个实例,并在不同的端口启动这些实例,那么我的门户网站一次可以处理更多的请求。 (如果用户在不同的表中search)。
那么,你会build议我? 单核Solr实例中的多核? 或每个单/双核的多个实例?
在不同的端口上运行多个Solr实例是否有问题?
注意:在这里,我可以/可能会将一个或多个较lesssearch到的核心/一个或多个小核心与一个实例中的大stream量核心或者两个三重的stream量核心组合在一起,核心在一个实例中等等,为每个表(〜100这里)创build不同的实例将需要太多的硬件资源。
Solr一次可以处理多个请求 。
我已经通过运行一个长查询来testing它[qTime = 7203, 7秒]和几个小查询 – 在长整型[qTime = 30]之后,Solr首先响应较小的查询,即使它们在长查询之后运行。
这一点在回答中给出了很多理由:使用具有多个核心的单个solr实例。 只需将高内存分配给JVM。
其他要点:
1.每个solr实例将需要RAM,所以运行多个实例将需要更多的资源,这将是昂贵的。 如果你使用facets , sort fields那么你需要分配更多的RAM到每个实例。
正如你可以看到在我的情况下,我需要启动具有高内存(8GB)的solr。 您可以看到一个丹麦网页档案的案例,它使用多个实例,并分配了9GB RAM,每个RAM累计256GM。
2.您可以使用命令java -Djetty.port=8984 -jar start.jar 在不同的端口上运行solr的多个实例 。 一切正常,但我有一个问题。
而索引它可能会给“没有足够的内存错误” ,然后solr实例将被杀害。 所以你需要启动二次高内存,这将导致更多的内存需求。
3. Solr资源需求和性能问题在这里可以理解。 根据这个64位的环境和12GB的RAM是推荐用于良好的性能。 Solr优化在这里解释。