改进MarkLogic重新索引时间

改进MarkLogic重新索引时间,marklogic,marklogic-9,Marklogic,Marklogic 9,有没有办法提高MarkLogic重新编制索引的时间,特别是对于具有数百个林的脱机集群中的大型数据库(>100TB) 在重新索引期间禁用本地磁盘故障切换(副本林)如何?这会减少重新编制索引的时间吗?重新编制索引主要受IO限制。提高性能等同于提高IO吞吐量——因此答案是一样的。 由于您确实希望对副本林进行索引,所以不应该禁用它们——这只是将IO延迟到您重新启用它们之后。 既然您说这是一个“离线”集群——我想这意味着不涉及生产流量,所以您可以自由地重新配置可能会暂时干扰请求处理的东西——这是一个了解I

有没有办法提高MarkLogic重新编制索引的时间,特别是对于具有数百个林的脱机集群中的大型数据库(>100TB)


在重新索引期间禁用本地磁盘故障切换(副本林)如何?这会减少重新编制索引的时间吗?

重新编制索引主要受IO限制。提高性能等同于提高IO吞吐量——因此答案是一样的。 由于您确实希望对副本林进行索引,所以不应该禁用它们——这只是将IO延迟到您重新启用它们之后。 既然您说这是一个“离线”集群——我想这意味着不涉及生产流量,所以您可以自由地重新配置可能会暂时干扰请求处理的东西——这是一个了解IO性能调优的好机会

IO性能是一个复杂的问题——(对不起,没有简单的答案)。 首先要考虑的是您的物理拓扑——您的“本地磁盘”连接到什么、在哪里以及如何连接?例如,如果这是在云环境或数据中心中,您的“本地磁盘”可能是NAS或网络驱动器,在这种情况下,您的网络IO可能是瓶颈

另一个需要考虑的问题是集群的大小,以及是否可以为此目的增加集群的大小——这取决于林的位置以及它们是否易于连接到不同的服务器

一般来说,我建议同时监视MarkLogic“监视历史记录”和操作系统级性能工具。目标是在接近理论能力的情况下,实现持续的IO活动,而不是更多。如果你“推得太用力”,那么你会得到一个很大的IO反向逻辑(IO队列长度)——这会导致大量的“抖动”,最终会导致很长的延迟,系统可能会开始超时并重试

因此,您需要限制重新编制索引,这样在任何一个物理磁盘上都不会一下子太难。有很多方法可以做到这一点,在marklogic内部重新索引和合并参数,将物理磁盘wrt平衡到林位置,暂时使一些林脱机,然后将它们“旋转”到位等等。 这需要一些实验来找到正确的组合

最后一个注意事项——“时间太长”是主观的。重新索引100TB需要大量IO。这将需要很长时间。你的目标应该是看看如何避免让事情变得更糟,而不是去尝试不可能的事情,让它比可能做的事情花费更少的时间。您可以粗略计算最短时间。假设索引需要对所有数据进行完整的读写(这需要更多的时间,但这只是一个开始)。使用其他方法读取和写入100TB数据需要多长时间?这是完全重新索引的下限。
优化操作系统的基本IO吞吐量,并自然地进行MarkLogic索引