借助缓存使用情况模型,可以自定义 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 缓存访问文件,而不是直接装载后端存储。 缓存的文件将具有最近尚未复制到后端的更改。
在此使用模型下,默认情况下,缓存中的文件仅每隔 8 小时与后端存储上的文件进行一次检查。 假定文件的缓存版本更最新。 缓存中修改的文件默认在缓存中一小时后写入后端存储系统。
选择 读写缓存 选项时,可以同时更改验证计时器和写回计时器。 验证计时器默认值为 28,800 秒(8 小时)。 该值必须是介于 1 到 31536000 之间的整数(无小数)。 写回计时器默认值为 3600 秒(1 小时)。 该值必须是介于 1 到 31536000 秒(1 年)之间的整数(无小数)。
下表汇总了使用情况模型差异:
| 使用模型 | 缓存模式 | 验证计时器 | 写回计时器 |
|---|---|---|---|
| 只读缓存 | 读取 | 30 秒 | 没有 |
| 读写缓存 | 读取/写入 | 8 小时 | 1 小时 |
警告
更改使用模型会导致服务中断。 使用模型正在转换时,HPC 缓存客户端不会收到响应。 如果必须更改使用模型,建议在计划维护时段内进行更改,以防止客户端中断。
如果对 Azure HPC 缓存工作流的最佳使用模型有疑问,请联系 Azure 代表或提出支持请求以获取帮助。
Tip
实用工具可用于将特定单个文件写回到存储目标,而无需写入整个缓存内容。 详细了解 Azure HPC 缓存中自定义文件写回中的flush_file.py脚本。
后续步骤
- 将存储目标添加到 Azure HPC 缓存