> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siflow.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 配置和管理数据集缓存

> 为数据集配置缓存，查看缓存容量和状态，并处理缓存创建或读取异常。

数据集缓存是可选的数据读取加速能力，适用于同一数据集会被开发环境或训练任务反复读取的场景。

<Note>
  如果当前项目已开通数据集缓存能力，并且同一数据集需要反复读取，可以创建缓存。
</Note>

## 缓存与数据集的关系

* **缓存用于加速读取**：缓存可以提升重复读取同一数据集时的访问效率。
* **缓存依赖源数据**：源文件仍以 Volume 或对象存储中的数据为准，缓存不替代源数据管理。
* **缓存会占用资源**：缓存服务运行会持续占用 CPU、内存等资源；立即预加载还可能临时占用额外实例资源。
* **缓存不是备份**：清理缓存不等于删除源数据，但缓存本身也不能作为唯一持久副本。

## 创建数据集缓存

创建前先确认缓存服务运行和预加载会带来的资源占用，再根据页面展示的可用容量规划缓存数据量。

| 核对项 | 说明 |
| - | - |
| 缓存服务运行 | 缓存服务运行期间会持续占用 CPU、内存等资源。 |
| 可用缓存容量 | 页面展示的可用容量已扣除服务预留内存，规划缓存数据量时以该值为准。 |
| 立即预加载 | 启用后会临时占用一个所选 CPU 实例执行预加载，预加载结束后释放这部分占用。 |

1. 打开数据集缓存创建入口。
2. 选择需要加速的数据集，并配置缓存使用的资源池、实例类型和数量。
3. 查看可用缓存容量，按需要决定是否立即预加载。
4. 提交后跟踪缓存状态和数据量，再通过实际读取验证效果。

## 查看缓存状态和容量

| 缓存字段 | 说明 |
| - | - |
| **总大小** | 数据源规模统计，可能受扫描和刷新进度影响。 |
| **缓存大小** | 已缓存的数据量。 |
| **缓存容量** | 缓存层可用容量。 |
| **缓存百分比** | 当前缓存覆盖情况，不是实时命中率，也不是训练进度。 |
| **实例使用** | 缓存相关资源占用。 |
| **状态**和**原因** | 缓存执行阶段和异常线索。 |

缓存百分比未满时，先确认是否启用预加载，再比较源数据规模与缓存容量。按需读取时，未访问的数据也可能尚未缓存。

## 管理数据集缓存

清理缓存和删除数据集是两个独立操作。清理缓存会影响后续读取性能，但不应被当作源数据删除操作；删除数据集前仍需确认数据集记录、缓存和源文件之间的影响范围。

页面没有显示使用者，不足以证明没有工作负载依赖该数据集或缓存。清理缓存、删除缓存或删除数据集前，建议先盘点训练任务、开发环境和其他工作负载依赖。

## 常见问题

<AccordionGroup>
  <Accordion title="缓存无法创建怎么办？">
    检查 CPU 配额、资源池可用量，以及立即预加载可能需要的临时实例资源。如果页面显示失败原因，优先按失败原因排查。
  </Accordion>

  <Accordion title="缓存百分比一直未满怎么办？">
    先确认是否启用预加载，再比较源数据规模和缓存容量。按需读取场景下，未访问的数据可能尚未缓存，因此缓存百分比未满不一定表示任务失败。
  </Accordion>

  <Accordion title="缓存状态报错怎么办？">
    按状态原因检查源数据权限、网络访问和缓存资源。不能只凭缓存百分比判断是否失败。
  </Accordion>
</AccordionGroup>

## 相关文档

* [注册和管理自定义数据集](./register-custom-datasets)
* [在开发环境和训练任务中挂载数据集](./mount-datasets-in-workloads)
