You need to enable JavaScript to run this app.
导航
FSX 性能调优
最近更新时间:2024.12.30 16:33:20首次发布时间:2024.12.30 16:33:20

本文介绍如何调整参数来提升预读性能、写性能。

使用建议

FSX 支持预读、读缓存和写缓存模式,您可以根据实际使用场景,选择合适的模式,具体说明如下:

使用场景

推荐模式

性能

顺序读或小范围随机读的场景

默认(预读)

预读性能取决于预读的数据大小和预读线程数,详细介绍,请参见预读性能

需要小数据量重复读取文件的场景

读缓存

读缓存性能会受磁盘读性能影响,详细介绍,请参见读缓存性能

对写入性能敏感的场景

写缓存

您可以通过增加上传多段数据的线程来提高写带宽,详细介绍,请参见写性能

预读性能

FSX 客户端对于顺序读或者小范围随机读场景会默认启用预读功能,也就是通过并行多个 Range 下载请求提前将文件的后续内容加载到内存中。您可以通过以下参数来控制单文件预读的带宽和内存占用,具体说明如下:

  • 预读的数据大小
    预读的数据大小计算公式为:单文件最大预读的数据大小 = 预读的数据块大小(prefetch_forward_buffer_count) × 预读的数据块数量上限(prefetch_buffer_size)
    单文件最大预读的数据大小默认为 128MB。您可以通过配置 prefetch_forward_buffer_count 和 prefetch_buffer_size 参数来调整单文件最大预读的数据大小。具体参数说明如下:
    • prefetch_buffer_size: 设置每次预读请求向 TOS 读取的数据块大小,默认值为 4MB。较大的值可以减少 FSX 客户端向 TOS 的请求次数,但也会影响预读请求的吞吐带宽。
    • prefetch_forward_buffer_count:设置单文件预读的数据块数量上限,默认为 32。
    • prefetch_backward_buffer_count:设置保留当前读请求偏移之前预读数据块数量,默认为 1。与 prefetch_buffer_size 配合使用。
  • 读带宽
    预读线程可以通过 num_prefetch_threads 参数调整,默认为 32。最大的读带宽受预读线程和单文件带宽限流值影响,您可以通过增加预读线程来提高读带宽。

说明

如果您希望提升预读效率,您可以根据您的资源情况,设置较高的 num_prefetch_threads
prefetch_forward_buffer_count参数。

读缓存性能

对于小数据量频繁读取某一批文件场景,FSX 客户端提供了读数据缓存功能,重复读取数据时会从读缓存获取内容,不需要访问 TOS,从而减少访问时延,提升读取性能。读缓存的性能受缓存目录所在磁盘读性能影响,建议选择性能较好的磁盘或者将 tmpfs 内存文件系统作为读缓存目录。

说明

一次性读取或非重复读取数据的场景下,不建议开启读缓存功能。

您可以通过以下参数来启动读缓存功能:

  • read_cache_dir:配置读缓存目录,缓存路径可以指定为磁盘上某个目录或者 tmpfs 内存文件系统。
  • max_read_cache_size:配置读缓存空间大小,单位为 MB,默认为 0,建议按照需要缓存的数据量来预估读缓存空间大小。

写缓存性能

FSX 客户端默认会先写入数据到本地临时文件目录,临时文件目录可以在挂载时指定 temp_dir 参数进行配置,默认在 /tmp/ 下创建临时目录作为临时文件目录。如果您对性能敏感,可以在挂载时指定 tmpfs 作为写临时文件目录。您可以通过以下参数来调整写性能:

  • temp_dir:设置写缓存目录,可以通过指定 tmpfs 作为写缓存目录。
  • num_bg_threads:设置上传多段数据的线程数,默认为 32。最大的上传带宽受 num_bg_threads 和单文件带宽限流值影响,您可以通过增加上传多段数据的线程来提高写带宽。

说明

如果您希望提升写效率,您可以根据您的资源情况,设置较高的 num_bg_threads参数。