了解缓存使用情况模型

缓存使用情况模型可让你自定义 Azure HPC 缓存存储文件的方式,以加速工作流。

文件缓存的基本概念

文件缓存是指 Azure HPC 缓存加速处理客户端请求的方式。 文件缓存采用以下基本做法:

  • 读取缓存 - Azure HPC 缓存保留客户端从存储系统请求的文件的副本。 当客户端下次请求同一文件时,HPC 缓存可以提供其缓存中的版本,而无需再次从后端存储系统提取该文件。 写请求被传递到后端存储系统。

  • 写入缓存 -(可选)Azure HPC 缓存可以存储从客户端计算机发送的任何已更改文件的副本。 如果在短时间内有多个客户端对同一文件进行了更改,那么缓存可以收集缓存中的所有更改,而无需将每项更改单独写入后端存储系统。 如果在指定的一段时间后文件未发生更改,缓存会将文件移到长期存储系统。

  • 验证计时器 - 验证计时器设置确定缓存将其本地文件副本与后端存储系统上的远程版本进行比较的频率。 如果后端副本比缓存的副本要新,则缓存将提取远程副本,并存储该副本以提供给将来的请求。

    验证计时器设置显示缓存何时自动将其文件与远程存储中的源文件进行比较。 但是,可以通过执行包含 readdirplus 请求的目录操作,来强制 Azure HPC 缓存比较文件。 readdirplus 是一个标准的 NFS API(也称为扩展读取),它会返回目录元数据,从而使得缓存比较并更新文件。

  • 写回计时器 - 对于具有读写缓存功能的缓存,写回计时器是将更改的文件复制到后端存储系统之前缓存等待的最长时间(以秒为单位)。

内置于 Azure HPC 缓存中的使用情况模型对这些设置采用不同的值,以便你可以选择适合你情况的最佳组合。

为工作流选择适当的使用情况模型

必须为使用的每个 NFS 协议存储目标选择一个使用情况模型。 Azure Blob 存储目标具有一个不可自定义的内置使用情况模型。

HPC 缓存使用情况模型可让你选择如何在快速响应与所获数据过时的风险之间实现平衡。 如果你想要优化文件读取速度,那么你可能不会在意是否根据后端文件检查缓存中的文件。 另一方面,如果你想确保远程存储中的文件始终是最新的,请选择一个模型并将验证计时器设置为较低的数字以频繁进行检查。

下面是使用情况模型选项:

  • 只读缓存 - 如果你想加快对文件的读取访问速度,请使用此选项。 当工作流涉及最少的写入操作(例如 0% 到 5%)时,请选择此选项。

    此选项会缓存客户端读取,但不缓存写入。 写入会传递到后端存储。

    不会自动将缓存中存储的文件与 NFS 存储卷上的文件进行比较。 (请阅读上述验证计时器说明以了解如何手动比较文件。)

    选择“只读缓存”选项时,可以更改验证计时器。 默认值为 30 秒。 该值必须是整数(无小数),其范围为 1 到 31536000 秒(1 年)。

  • 读写缓存 - 此选项缓存读取和写入操作。 使用此选项时,大多数客户端预计通过 Azure HPC 缓存访问文件,而不是通过直接装载后端存储来访问。 缓存的文件包含最近所做的、尚未复制到后端的更改。

    在此使用模型中,默认情况下,只会每隔八小时根据后端存储中的文件检查缓存中的文件。 假设文件的缓存版本更新。 默认情况下,缓存中已修改的文件如果存在于缓存中的时间有 1 小时,将会写入后端存储系统。

    选择“读写缓存”选项时,可以更改验证计时器和写回计时器。 验证计时器默认值为 28,800 秒(8 小时)。 该值必须是整数(无小数),其范围为 1 到 31536000(含)。 写回计时器默认值为 3600 秒(1 小时)。 该值必须是整数(无小数),其范围为 1 到 31536000 秒(1 年)。

下表汇总了使用情况模型的差异:

使用模型 缓存模式 验证计时器 写回计时器
只读缓存 读取 30 秒
读写缓存 读取/写入 8 小时 1 小时

警告

更改使用模型会导致服务中断。 在使用模型转换期间,HPC 缓存客户端不会收到响应。 如果必须更改使用模型,建议在计划的维护时段内进行更改,以防止客户端中断。

如果你在哪个使用情况模型最适合你的 Azure HPC 缓存工作流方面有任何疑问,请与 Azure 代表联系,或提出支持请求以获取帮助。

提示

实用工具可用于将特定的单个文件写回存储目标,而无需写入整个缓存内容。 通过在 Azure HPC 缓存中自定义文件写回详细了解 flush_file.py 脚本。

后续步骤