如何在 Silverstack v9 中平衡并行任务以实现最佳性能

技术前沿

概述

· Silverstack v9 中的新卷和任务视图

· 并行装载多张卡

· 级联备份和其他后续任务

· 验证、转码和上传任务的限制

· 结论:了解你的硬件

 

在数据管理中,速度至关重要。许多任务必须快速运行,因此经常并行运行;但是,更多的并行运行不总是结果更好。在某些情况下,可能会拖慢工作的进度。

为了实现最佳性能,你需要找到并行操作的正确平衡。比方说,依次运行任务可能会浪费可用资源,如传输带宽或 CPU/GPU 性能。另一方面,同时运行太多任务则可能会给系统带来过多的管理负荷和并行任务的环境切换,从而拖慢系统速度。因此,理想的平衡在很大程度上取决于你的硬件设置:

· 源较慢,目标位置快:如果你使用的是慢速摄影机卡/读卡器,但目标卷较快,那么同时装载多张卡可以帮助你更好地利用目标位置的速度。

· 源较快,目标位置慢:如果摄影机媒体速度很快,但目标位置是瓶颈,那么同时装载多张卡实际上可能会影响性能并增加周转时间。

这就是为什么 Silverstack 让你能够通过为每个与任务相关的卷设定限制来控制并行操作的程度。其内部任务机制确保了你设的限制得到遵守,且一旦容量可用就会立即开始新的任务。让我们来看几个例子!

Silverstack v9 中的新卷和任务视图

在深入探讨之前,让我们快速厘清一下 Silverstack 任务机制的术语。一套工作流为一组输入文件安排一个或多个任务(比方说,装载和转码 A001 卡)。每个任务都由具体操作组成:这些操作做通常将任务分解至单个文件一级。根据其类型和配置,具体操作会访问要读取和/或写入的卷(比方说,备份任务从源卡读取并写入目标卷)。

Silverstack 中的任务执行是在具体操作一级控制的。这就是为什么每个卷都具备性能设置,让你能够微调具体操作如何与之交互:

· 最大读取(Max Reading):定义允许同时从该卷读取的最大操作数。

· 最大写入(Max Writing):定义允许同时写入该卷的最大操作数。

· 读/写(Read/Write):定义读写操作是否可以同时访问卷,或者是否一次只允许一种类型

下图总结了如何访问性能设置:切换到 Silverstack 状态栏(1)中的“任务”选项卡,从左侧边栏(2)中选择要调整的卷,然后在右侧的详细信息视图(3)中编辑其设置。两个边栏都可以通过工具栏显示或隐藏,以保持工作空间的组织有序。要监控具体操作一级的运作,请选择一个或多个工作流,然后点击工具栏中的“具体操作”按钮(4)。

图1:在Silverstack中导航到性能设置

请注意:这些设置的变更不会立即被应用。在 Silverstack v9.0.5 中,变更仅在新操作被安排或正在运行的任务更改其状态(例如:已完成、已取消) 时生效。从 Silverstack v9.1 开始,这种行为将发生变化:减少的限制会立即生效并触发新操作,而强化限制则不会影响已经运行的操作。

由于这些设置应该针对每个目标进行配置,Silverstack v9 中的工作流配置窗口突出显示了未配置的卷,并提供对具有常见配置选项的预设的快速访问(见下图)。

图3:快速访问卷设置的工作流配置窗口

并行装载多张卡

为了启用并行装载,你必须允许目标卷同时接收来自多个操作的数据:比方说,一个操作来自卡A的备份任务,另一个操作来自卡B。要实现这点,你需要将“最大写入”设置为所需的并行级别(在本例中为“2”或更高)。如果备份任务使用多个目标位置,那么每个目标卷都必须接受该数量的写入操作;否则,最低值将限制运作。

让我们看看当使用不同的卷性能设置时,装载两张卡到 RAID 和更替硬盘目标位置的执行时序图。在下面的第一部分可视化过程中,目标位置允许“最大写入:2”,并且卡是并行装载的。

图4:将两张摄影机卡装载到两个目标位置,并设置“最大写入:2”

然而,如果一个或两个目标位置只允许一个并行写入操作,那么B卡必须等待A卡装载完成,如下图所示。

图5:将两张摄影机卡装载到两个目标位置,并设置“最大写入:1”

到目前为止,我们集中讨论的是“最大读取”参数。但当你更改“最大读取”设置时会发生什么呢?它定义了从特定卷读取时的并行数量。这一做法旨在控制目标位置硬盘的并行执行(比方说,我是否希望 RAID 的级联备份与转码任务并行进行?)。对于源摄影机卡,请谨慎使用这个设置

尝试从同一摄影机卡并行读取多个文件通常会导致非常糟糕的吞吐情况,因为它会产生进程负荷,且可能会让读卡器不堪重负 —— 这可能会由于读取错误而导致卡解除挂载或失败。此外,从源读取的每个文件都可能会阻止目标位置上的写入操作 —— 这可能会阻止多张卡并行装载,如以下示例所示:

⚠️图6:从同一来源并行读取多个文件通常会产生问题⚠️

在多数情况下,逐个读取每张摄影机卡中的文件是最可靠和最快的设置。因此,我们建议将源摄影机卡的“最大读取”保持设置为“1” —— 这是 Silverstack 中新源摄影机卡的默认设置。

请留意:新摄影机卡的默认值可以在“设置”>“复制&任务”中更改。

级联备份和其他后续任务

当初始装载的其中一个目标位置被用作后续备份的源时,就会发生级联备份。一个典型的使用级联备份的场景是当你的 RAID 显著快于(一个或多个)更替硬盘时。在这种情况下,你可能想要先以全速装载到 RAID,然后再以较慢的更替硬盘的速度从 RAID 备份到更替硬盘。

这样,你的摄影机卡可以更快地释放出来,但这意味着你的 RAID 必须作为装载的目标位置(写入)以及作为级联备份的源(读取)。你希望这些操作并行运行吗?

“读/写:强制独占读取或写入”选项会等待从初始装载开始的所有写入操作完成,然后才开始级联备份。两个任务将依次运行。另一方面,“允许并行读写”会导致任务执行交错:读取和写入访问会同时发生。因此,级联备份可以在RAID上有一个初始装载文件可用时立即开始(即有一个装载操作已完成)。

图7:Silverstack 中的顺序 vs. 交错级联备份

同样的机制指定了是否允许在 RAID 上进行装载时从 RAID 开始运行转码(或其他后续任务)。

传统硬盘(HDD)通常在独占读取或独占写入时性能最好。相比之下,SSD 和 RAID 可以更好地处理并行读写。然而,即使对于 SSD 或 RAID,你也可能需要考虑“独占读写”选项:当将高性能硬盘连接到计算机时,雷雳总线可能会成为瓶颈。在这种情况下,这个选项可以避免频繁切换总线上的数据流方向,从而提高整体吞吐量。

验证、转码和上传操作的限制

为了更好地控制工作负载执行并更深入地理解这个主题,你还应该考虑以下背景信息:

· 转码操作从源读取并写入目标,但在评估限制时没有考虑写入部分(因为写入转码结果通常不会制造出非常大的工作量)。也就是说,转码的内部限制是每次只能执行一个任务,以确保最佳转码速度。

· 备份操作有不同的类型。如果使用备份选项“复制任务中包含验证”,得到的“备份(复制+验证)”操作会将复制和验证操作结合在一起:这一操作会从复制文件(从源读取和写入目标)开始。当文件完全被复制后,任务进度达到50%,内部由此切换到验证(只读取所有硬盘)。然而,需要注意的是,在任务执行机制中,这种类型的备份操作在任何时候都会耗费源硬盘的“1次读取”和目标位置的“1次写入”计数。

若要对复制和验证操作的执行进行更细致的控制,请使用”分离验证任务”选项。这会创建单独的”只复制”(从源读取、写入目标位置)和”验证”(只读)操作,使你能够更精确地控制它们的执行。

· 上传、动态元数据提取和验证操作要消耗源代硬盘1个读取操作计数。

这个快速的小插曲揭示了工作负载的执行不仅取决于你设定的卷的限制,还取决于特定操作类型固有的内在限制(比方说,一次只能转码一个操作)。那么,如果这两处限制都得到遵守,Silverstack 如何决定接下来开始哪个操作呢?这就引出了另一个重要概念:任务优先级

通过设置优先级,你可以让 Silverstack 先处理某些操作,然后再处理其他操作:比方说,级联复制操作先于动态元数据提取操作。你可以在任务详细信息中设置任务优先级。自 Silverstack v9.1 开始,这个设置也将集成到工作流配置中。如果多个计划操作满足了我们讨论过的所有标准,并且优先级相同,那么它们将是“先到先得”的 —— 即最早的计划操作会首先开始。

结论:了解你的硬件

找到最佳并行工作方式取决于你的个人硬件设置以及你想要/需要优先完成的事情的个人优先级。Silverstack v9 为你提供了精细的控制,可以根据你的需求调整工作流执行。通过单独配置每个卷,现在你可以更轻松地组合快速和慢速硬盘,同时管理快速吞吐量。

在准备阶段请尝试使用实际硬件来测试你的配置。然而,请记住,硬件特性可能会随时间变化:当固态硬盘发热时,内部控制器会限制其性能。当它们被大量数据“淹没”时,其高速突发速度缓冲区可能最终溢出 —— 这可能会降低写入速度。

因此,你最好小幅度调整并行操作执行,在较长时间内同时监看可靠性和整体吞吐量。


出处:Pomfort

views
技术前沿
Assimilate Scratch 正式集成 Dehancer 插件

SCRATCH 集成 Dehancer OFX 插件

技术前沿
Pomfort 发布 Livegrade 7.1.2 版本更新

Pomfort发布Livegrade 7.1.2版本更新

技术前沿
Assimilate 产品套装 v9.9 1201 小更新

Assimilate 产品套装 v9.9 1201 小更新