文件系统性能注意事项

已完成

如果你已运行 HPC 工作负载,则可能已遇到“操作”、“块大小”、“IOPS”、“吞吐量”和“延迟”等术语。 你在选择存储时可能已经考虑了这些因素。

本部分结束时,你应该初步了解了这五个性能因素及其对 HPC 工作负载的具体影响。

操作

术语“操作”是指主机/计算机与文件系统或磁盘之间的任何活动。

例如,你可能已经熟悉下列涉及到操作系统及其本地磁盘的操作:

  • 创建(文件)
  • 删除
  • 打开
  • 关闭
  • 读取
  • 写入
  • 追加
  • 获取属性
  • 设置属性
  • 重命名

NFS 表示文件客户端与服务器之间的网络级交互。 请注意,其中一些操作与本地操作类似。 但是,由于 NFS 是网络 API,因此这些网络操作可能涉及多个本地操作。

  • create(文件或链接)
  • mkdir
  • readdirreaddirplus
  • getattr
  • setattr
  • lookup(搜索目录中的文件句柄)
  • link/symlink/readlink
  • read
  • rename
  • remove
  • rmdir
  • write

操作如何影响 HPC 存储?

了解操作如何影响存储系统是有帮助的。 例如,假定 HPC 工作负载在嵌套目录结构中创建大量小文件。 在这种情况下,与读取一些大型顺序文件的工作负载相比,你的工作负载需要更多数量的操作。

我们将在下个单元讨论这些访问模式。 create 涉及多个操作,因此工作负载创建的文件越多,对性能的影响就越大。

块大小

块大小是指文件系统在一次操作中可读取或写入的最小数据大小(字节)。

为实现我们的目的,块大小还指可在 NFS 客户端与服务器之间传输的 NFS 数据区块(读取/写入)的有效负载大小。

NFS 服务器和客户端会协商块大小,并接受彼此支持的尽可能大的大小。 默认设置为 4 KB 到 64KB。 当前最大可配置值为 1 MB。 单个数据包的有效负载不能大于设定值。

你可以在客户端上显式配置块大小。 请查看 HPC 群集计算机上的完整 mount 语句以确定值。 已设置默认大小。 未在 mount 语句中显式配置值。

用于配置 NFS 块大小的两个参数为 rsize(读取大小)和 wsize(写入大小)。

如果配置较小的块大小。 或者所选文件系统的最大块大小较小,而工作负载包含大文件。 由于大文件的额外分块,性能会受到影响。

IOPS

术语“IOPS”表示“每秒输入/输出操作数”。 存储环境中的 IOPS 数量由以下属性决定:

  • 存储介质的类型。 例如硬盘驱动器 (HDD) 和固态硬盘 (SSD)。
  • 通过网络连接引入的延迟。
  • 文件系统使用的块大小。
  • 文件系统可用的并发访问数量。

一个存储解决方案具有一个 IOPS 数量。 例如,如果使用支持 5000 IOPS 的 Azure 托管磁盘,则意味着每秒最多可执行 5000 次操作。 但是,IOPS 数用于度量对磁盘进行的所有读取或写入操作的最大总数,包括系统开销读取和写入操作。

IOPS 值可作为磁盘或 NAS 环境能够支持的最大操作数的参考。

度量值通常会在“随机”和“顺序”读取和写入操作间细分。

  • 随机操作是指在磁盘或文件的不同随机点上读取或写入数据。 例如,在文件中的某处编辑特定范围的字节。
  • 顺序操作是指对文件进行连续访问,从文件开头读取文件。

吞吐量

吞吐量是指文件系统可处理的总传输速率,以每秒字节数为单位。

若要对吞吐量进行基本计算,请将系统的 IOPS 与块大小相乘。

例如,如果你有一个磁盘支持 3,000 IOPS,并且你的块大小为 4K,那么总吞吐量可能为 12 MBps。

通过此计算,你可基本了解文件系统通常可能具有的性能。 不过,实际吞吐量可能会有所不同。 其他因素会影响吞吐量,例如创建或删除大量小文件时的网络开销。

延迟

延迟是指完成操作所需的时间量。 延迟越高,越可能出现工作负载运行变慢的情况。

一个体系结构中可以存在多个延迟源,每个都会带来整体延迟影响。

出现以下情况时,文件系统可能会延迟:

  • 客户端与服务器之间的网络连接速度慢。
  • 由于大量并发请求,在网络或文件服务器上发生拥塞。
  • 由于客户端与服务器之间的距离(例如跨 WAN)而导致的必然延迟。
  • 文件服务器上磁盘子系统访问速度慢。

延迟不总是一致,也不总是有明确记录。 需要运行测试来确定 HPC 群集计算机与存储终结点之间的延迟。

延迟也会累积。 网络性能可能是影响因素之一,但也可能存在其他因素,例如计算机操作系统配置错误,或者工作负载代码本身效率低下。 上述任一因素都会影响总体延迟。

评估文件系统的实际性能时,延迟是重要的考虑因素。 延迟越高,IOPS 越小。 IOPS 越小,吞吐量就越低。

测试和计算基线值

为 HPC 工作负载选择确切的性能配置时,工作负载本身会产生巨大影响。

Azure 文件系统产品/服务会显示预期的 IOPS 和吞吐量值。 如果选择自行构建 NAS 解决方案,请使用为每个虚拟机和托管磁盘 SKU 记录的指标。

你可以本地数据中心 HPC 配置为起点来达到性能预期。 请记住,云解决方案允许创建多个运行工作负载的环境。 因此,你在 Azure 中执行每个工作负载时的灵活性可能更高。 与之相对,本地环境是根据无法轻松(动态)扩展的特定容量生成的。

可以使用 pingfioiozoneiometer 等基本工具来确定 Azure 文件系统的基线数量。

应用程序分析

你可能有一个要占用大量 I/O 的工作负载,它需要大量 IOPS 和吞吐量才能有效运行。 或者,你的工作负载可能会启动、将库和源数据读入内存,并继续执行最小存储 I/O。 上一列表中的第一个工作负载可能会写出其他 HPC 计算机必须读取的中间数据。 其中每种动态都会影响处理存储解决方案的方式。 要确保计算机可尽快读取数据,重点是降低读取延迟。 但是,如果你的工作负载正将中间或暂存信息写入磁盘,则需要确保每个 HPC 计算机都能够快速访问本地磁盘或用于这些写入的快速共享 NAS 解决方案。 取决于可能需要读取这些中间写入的具体计算机。

你可能想分析应用程序对存储 I/O 的使用。 随着 HPC 群集的大小增加和工作负载数量增加,分析变得更加重要。

分析涉及到使用在你的 HPC 计算机和存储环境中运行的工具。 这些工具会就针对存储环境运行的操作的数量、类型和大小进行报告。

由于可能会生成大量数据,因此可能很难分析工作负载。 像 iostatsar 这样的工具可以在一段时间后创建大量的输出。 你可能需要分析结果,甚至可能需要进一步分析结果,从而生成直方图。

如果使用 NAS 解决方案,则需要在分析运行期间从供应商的接口收集统计信息。 然后,将该信息与 HPC 计算机数据关联以验证 I/O 模式。

第三方分析工具可用于帮助进行 I/O 分析,某些由 HPC 应用程序供应商提供。

知识检查

1.

如果你的文件为以下情况,则小块会降低性能:

2.

如果你有一个磁盘支持 5000 IOPS,而你的块大小为 4K,那么你的总吞吐量可能是: