Alfresco搜索服务的搜索性能问题



我们正试图将AlfrescoCE系统从带有solr4的5.2迁移到带有Alfresco搜索服务的Alfresco6.1(我们尝试了1.3和1.4(,但是我们使用Alfresco搜索服务/Solr6时我们面临着巨大的性能问题: 在类似设置上运行的搜索需要3-5倍的时间。

一些背景:

  • Alfresco5.2/solr4运行在Ubuntu 16/OracleJdk 8上
  • Alfresco 6.1/ASS 1.4 运行在 Ubuntu 18/采用 OpenJDK 11
  • 存储库和 ASS 在专用服务器上运行(不涉及 docker(
  • solr索引存储在非常快的SSD SAN ext4设备上,没有随机和顺序访问/IOPS数的问题
  • 所有盒子都有 8 个内核,16 GB 内存
  • 所有机箱都具有具有 12 GB 堆空间的 JVM
  • 两个 SOLR 版本具有相同的缓存配置
  • 两个 SolR 版本具有相同的内存配置
  • Solr 文档数量: ~ 7,000,000

我们可以观察到的:

  • 搜索简单的单词,如露天,圣诞节,...Alfresco5.2/solr4在~1-2秒内返回尚未缓存的结果
  • 搜索简单的单词,如露天,圣诞节,...Alfresco6.1/solr6在~7-15秒内返回尚未缓存的结果
  • Alfresco5.2/solr4显示在solr管理UI中使用~9的12 GB堆空间
  • Alfresco6.1/solr6在solr管理UI中显示使用~3的12 GB堆空间

我们已经尝试在不改变搜索性能的情况下增加 RAM、堆空间、CPU。 我想知道为什么 sol46/ASS 占用的堆空间这么少。

有人有类似的经历吗?

我们应该怎么做才能获得更多可接受的响应时间?

我也尝试在solr6中配置分片(不相信这解决了真正的问题(,但是在Alfresco6.1 CE接缝中创建Solr分片也不起作用。

它指出,搜索性能问题是由社区为解决本地化限制(通过在搜索查询中添加locale = '*'(而进行的修复引起的。

相反,应始终使用默认情况下未设置的跨区域设置属性创建索引。 例如在shared.properties

# Data types that support cross locale/word splitting/token patterns if tokenised
alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text
alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content
alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext

请查看 https://github.com/Alfresco/SearchServices/issues/234 了解更多详情。

最新更新