Cloud Storage FUSE 文件缓存功能是基于客户端的读取缓存,可让您从所选择的速度更快的缓存存储空间中传送重复文件读取。本页面介绍如何启用和使用 Cloud Storage FUSE 文件缓存。如需文件缓存、统计信息缓存或类型缓存的概览,请参阅缓存概览。
准备工作
文件缓存需要使用目录路径来缓存文件。您可以在现有文件系统上创建新目录,也可以在预配的存储空间上创建新的文件系统。如果您要预配要使用的新存储空间,请按照以下说明创建新的文件系统:
对于 Google Cloud Hyperdisk,请参阅创建新的 Google Cloud Hyperdisk 卷。
对于 Persistent Disk,请参阅创建新的 Persistent Disk 卷。
对于本地 SSD,请参阅将本地 SSD 添加到虚拟机。
对于内存中 RAM 磁盘,请参阅创建内存中 RAM 磁盘。
启用和配置缓存行为
使用 Cloud Storage FUSE 配置文件中的
file-cache
字段启用和配置文件缓存,并在cache-dir
字段中指定要使用的缓存目录。文件缓存默认处于停用状态。请注意,您可以通过将目录传递给cache-dir
字段来启用文件缓存。可选:使用配置文件中的
metadata-cache
字段配置统计信息缓存和类型缓存。如需详细了解统计信息和类型缓存,请参阅类型缓存概览或统计信息缓存概览。可选:通过将
ttl-secs
选项设置为基于重复读取之间的预期时间的值来增加缓存条目的 TTL,同时均衡一致性需求。我们建议您将ttl-secs
值设置为工作负载所允许的最大值。您可以在 Cloud Storage FUSE 配置文件中配置 TTL。如需详细了解如何为缓存条目设置 TTL,请参阅存留时间。例如,以下配置文件启用 TTL 为
3600
秒且缓存目录设置为/path/to/a/directory/
的文件缓存、统计信息缓存和类型缓存。请注意,max-size-mb
设置为-1
,这会将文件缓存配置为使用所有可用容量。file-cache: max-size-mb: -1 cache-file-for-range-read: false metadata-cache: stat-cache-max-size-mb: 32 ttl-secs: 3600 type-cache-max-size-mb: 4 cache-dir: /path/to/a/directory
可选:通过启用
enable-parallel-downloads
属性(使用多个工作器并行下载大型文件,并使用文件缓存目录作为预提取缓冲区)来加快大型文件的读取速度,包括首次读取。如需详细了解并行下载以及如何配置其支持的属性,请参阅使用并行下载提升读取性能。在运行工作负载之前,在装载的存储桶上手动运行
ls -R
命令来预先填充元数据,从而以更快的批处理方法在首次读取之前填充类型缓存。 如需详细了解如何提升首次读取性能,请参阅提升首次读取性能。
使用并行下载功能并行下载多个文件
您可以通过启用并配置并行下载功能来提升读取性能,该功能使用多个工作器并行下载文件,并使用文件缓存目录作为预提取缓冲区。我们建议在加载大型文件(例如模型部署和检查点恢复)的单线程读取场景中使用并行下载。
在启用并行下载之前,请考虑以下事项:
如果您的应用在 8 个线程上具有高读取并行度,可能会出现轻微的性能下降。
我们不建议使用并行下载来处理训练工作负载,因为它们具有较高的读取并行度。
如需使用并行下载,您必须先启用并配置文件缓存。
所读取的文件必须符合文件缓存目录的可用容量,可使用
max-size-mb
属性进行控制。
配置并行下载
在 Cloud Storage FUSE 配置文件中,将
enable-parallel-downloads
属性设置为true
,并视需要配置以下支持设置:parallel-downloads-per-file
:可为每个文件生成以将对象从 Cloud Storage 下载到文件缓存的工作器的数量上限。默认值为16
。max-parallel-downloads
:在任何给定时间可在所有文件下载作业中生成的工作器的数量上限。默认设置为机器上 CPU 核心数的两倍。如需指定无限制,请输入值-1
。download-chunk-size-mb
:每个工作器将对象下载到文件缓存时向 Cloud Storage 发出的每个读取请求的大小(以 MiB 为单位)。默认大小为 50 MiB。请注意,只有读取的文件达到指定大小时,系统才会触发并行下载。