Alfresco 搜索服务的搜索性能问题
Search performance problems with Alfresco Search Services
我们正在尝试将 Alfresco CE 系统从带有 solr4 的 5.2 迁移到带有 Alfresco 搜索服务的 Alfresco 6.1(我们尝试了 1.3 和 1.4),但是我们在使用 Alfresco 搜索服务/Solr6 时面临着巨大的性能问题:搜索 运行 在类似的设置上需要 3-5 倍的时间。
一些背景:
- Alfresco 5.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 RAM
- 所有盒子都有 12 GB 堆的 jvm space
- 两个 solr 版本的缓存配置相同
- 两个 solr 版本具有相同的内存配置
- solr 文档数量:~ 7,000,000
我们可以观察到的:
- 正在搜索像 alfresco、christmas 等简单的词...Alfresco 5.2/solr4 returns 大约 1-2 秒后尚未缓存的结果
- 正在搜索像 alfresco、christmas 等简单的词...Alfresco 6.1/solr6 returns 大约 7-15 秒后尚未缓存的结果
- Alfresco 5.2/solr4 在 solr admin 中显示 ui 使用 ~9 of 12 GB heap space
- Alfresco 6.1/solr6 在 solr admin 中显示 ui 使用 ~3 of 12 GB heap space
我们已经尝试增加 RAM、堆 space、CPU 而搜索性能没有任何变化。
我想知道为什么 sol46/ASS 消耗这么少的堆 space.
有没有人有类似的经历?
我们应该怎么做才能获得更可接受的响应时间?
我还尝试在 solr6 中配置分片(但我不相信这能解决真正的问题)但是 接缝也不起作用。
它指出搜索性能问题是由社区解决本地化限制(通过在搜索查询中添加 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 了解更多详情。
我们正在尝试将 Alfresco CE 系统从带有 solr4 的 5.2 迁移到带有 Alfresco 搜索服务的 Alfresco 6.1(我们尝试了 1.3 和 1.4),但是我们在使用 Alfresco 搜索服务/Solr6 时面临着巨大的性能问题:搜索 运行 在类似的设置上需要 3-5 倍的时间。
一些背景:
- Alfresco 5.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 RAM
- 所有盒子都有 12 GB 堆的 jvm space
- 两个 solr 版本的缓存配置相同
- 两个 solr 版本具有相同的内存配置
- solr 文档数量:~ 7,000,000
我们可以观察到的:
- 正在搜索像 alfresco、christmas 等简单的词...Alfresco 5.2/solr4 returns 大约 1-2 秒后尚未缓存的结果
- 正在搜索像 alfresco、christmas 等简单的词...Alfresco 6.1/solr6 returns 大约 7-15 秒后尚未缓存的结果
- Alfresco 5.2/solr4 在 solr admin 中显示 ui 使用 ~9 of 12 GB heap space
- Alfresco 6.1/solr6 在 solr admin 中显示 ui 使用 ~3 of 12 GB heap space
我们已经尝试增加 RAM、堆 space、CPU 而搜索性能没有任何变化。 我想知道为什么 sol46/ASS 消耗这么少的堆 space.
有没有人有类似的经历?
我们应该怎么做才能获得更可接受的响应时间?
我还尝试在 solr6 中配置分片(但我不相信这能解决真正的问题)但是
它指出搜索性能问题是由社区解决本地化限制(通过在搜索查询中添加 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 了解更多详情。