【发布时间】:2020-08-27 07:07:11
【问题描述】:
我们的项目正在使用线程数为 32 的 MarkLogic XDBC 服务器。任务服务器线程数也是 32。更新少数实体(来自 UI)在任务服务器上触发 CPF 触发器 (T1)另一个集合中数据库中的一些链接文档。由于业务规则,链接文档计数不受限制。一些实体链接到 0 个文档,而其他实体可以链接到 100k 或更多。
当任何具有大量链接文档的实体被更新时,假设是 20k,然后系统负载不足并且任何来自 XDBC 服务器的请求都会遇到延迟。当此计数较小时,系统工作正常,范围从 0 到 2k。
注意: 超过 2k 或 3k 的链接文档数量在一天内更新不是很频繁。它一天发生两次或三次。
问题:
虽然任务服务器上的约 20k 触发器在 15 分钟内完成,但在此期间即使对于最轻的请求(通过 XDBC 通信),用户界面的用户体验也很糟糕。
有什么方法可以设置 XDBC 服务器尽快为请求提供服务,并且任务服务器请求可以承担由于负载引起的大部分延迟。基本上,我们希望为应用服务器保留某种负载分区方法(呼吸空间),而不考虑任务服务器队列负载。应优先考虑 XDBC 请求。
服务器配置:
-
128 GB RAM,16 个虚拟处理器
-
1 TB 数据库大小分布在 8 个森林中。
-
任务服务器队列大小 - 1000k
【问题讨论】:
标签: marklogic marklogic-9