FSX 性能调优
本文介绍如何调整参数来提升预读性能、写性能。
FSX 支持预读、读缓存和写缓存模式,您可以根据实际使用场景,选择合适的模式,具体说明如下:
FSX 客户端对于顺序读或者小范围随机读场景会默认启用预读功能,也就是通过并行多个 Range 下载请求提前将文件的后续内容加载到内存中。您可以通过以下参数来控制单文件预读的带宽和内存占用,具体说明如下:
- 预读的数据大小计算公式为:单文件最大预读的数据大小 = 预读的数据块大小(prefetch_buffer_size) × 预读的数据块数量上限(prefetch_forward_buffer_count)
- 单文件最大预读的数据大小默认为 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 和单文件带宽限流值影响,您可以通过增加上传多段数据的线程来提高写带宽。
- max_temp_capacity:设置写缓存最大占用的磁盘空间,单位为 GiB,默认为 10。该参数与 part_size 决定写请求的最大并发数,计算公式为:最大并发数 = max_temp_capacity / part_size,当 part_size 为固定值时,通过提高 max_temp_capacity 的值,可以提高写请求的并发数。
说明
如果您希望提升写效率,您可以根据您的资源情况,设置较高的 num_bg_threads参数。
最近更新时间:2025.11.13 15:08:37