文件系统流量注意事项
目标 IOPS、吞吐量和延迟数是重要的值。 但为了优化性能,还需要确定 HPC 工作负载与文件系统进行交互的方式。 接下来是量化文件系统需要支持的流量规模和组合。
流量组合注意事项
流量组合是指 HPC 工作负载流量的组成,其形式为:
- 读取流量与写入流量的比率。 (例如,100% 读取,50% 读取和 50% 写入,100% 写入。)
- 随机与顺序读取/写入。
- 检查点和快照。
- 并发。
- 文件数量和大小。
在本单元的其余部分,我们会探讨这种流量类型的组合如何影响存储选择。
读取流量、写入流量与创建/删除
读取和写入操作平均消耗 IOPS。 但你选择的文件系统可能会对传入的写入流量应用高可用性,从而将其转化为速度较慢但具有复原性的写入吞吐量。
如果 HPC 工作负载执行大量严重依赖元数据的操作,那么性能可能会受影响。 例如创建文件、重命名目录结构或删除文件。 创建文件可能需要多个操作。 (检查文件是否存在、创建文件句柄、更新目录条目等。)
你的 HPC 工作负载可能主要集中在数据转换上,因此写入流量可能很高。 在这种情况下,需要确定写入性能优化的优先级。
随机与连续流量
你的工作负载所需的读取和写入流量模式类型由应用程序访问决定。
HPC 工作负载可能会高度并行,此时很多计算机从共享文件系统请求相同的数据。 它们也可能是唯一且序列化的,具有唯一随机数据访问模式。 连续流量的性能比随机流量的性能高。 产生连续流量的一个例子是由一台或多台计算机加载二进制库、大型图像或视频文件。 产生随机流量的一个例子是请求单个或多个文件的不同字节范围,而不是读取整个文件。
检查点和快照
工作负载经常会设检查点。 设检查点时,应用程序的状态及其数据会被复制到持久存储中,然后工作负载再继续执行操作。 检查点用于在无需完全作业重启的情况下恢复长时间运行的工作负载。 检查点还可与快照结合使用。 快照是指在某个时间点拍摄的文件系统的只读副本。 检查点可被视为应用程序特定或依赖应用程序的内容,而快照与文件系统级别相关。
检查点和快照都会使用 IOPS 和存储。 因此它们会影响文件系统的总体性能,具体由其频率和涉及的数据量决定。
并发
在选择文件系统时,要考虑的另一个因素是并发客户端和线程数量。 很多 HPC 工作负载在作业启动和结果阶段都需要大量的并发(可能是数百或数千个线程)。 例如,某个作业可能会跨 100 台 16 个核心的计算机进行初始化,每个核心操作一个或两个并发线程。 在这种情况下,并发线程的数量可能是 1,600 至 3,200 个。 这些线程可能会先读取所需的二进制文件(库和工具链等),然后作业才能继续。 要最大程度缩短作业运行时间,基础存储系统需快速响应这些读取请求。
同一作业可能会不再需要任何并发访问。 或者,它可能需要突发访问更多文件数据,或者写出中间结果供作业中的其他线程读取。
文件计数和大小
选择文件存储时,还需要考虑文件的数量和平均大小。 如果某工作负载使用 2 TB 的数据,而这 2 TB 由 100 个 20 GB 的文件而不是 10,000 个 200 MB 的文件组成,则该工作负载具有不同的性能特征。 尤其是在这 10,000 个文件嵌套在深层目录结构中的情况下。
建议识别最有可能的数据工作集。 工作集是指需要的可能最大文件计数和文件大小。 请试着确定最大和平均工作集定义,并使用这些最大值来指引你自己的计划。
定义工作集并不总是很容易,特别是对于一个环境,而不是单个 HPC 工作负载来说。 例如,某天你可能需要根据静态数据集创建小型模拟。 第二天,你可能需要进行纵向扩展,以便执行具有中间输出和检查点的更大分析。