全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

ks3fs读写性能优化操作指引

最近更新时间:2026-07-17 15:05:41

ks3fs从V1.2.0版本开始推出读写性能模式,以内存缓存替代磁盘缓存,大幅提升读写吞吐量,适配 AI 训练、大数据分析场景。从V1.3.0 版本开始新增性能模式支持随机写、设置内存使用上限等功能。

版本特性对比

特性

V1.1.0

V1.2.0

V1.3.0+

性能模式

不支持

支持(-o performance开启)

ks3fs从V1.2.0版本开始支持开启性能模式。

支持(-o performance开启)

顺序写入

标准性能

开启性能模式后,单线程大文件顺序写带宽提升20倍以上

开启性能模式后,单线程大文件顺序写带宽提升20倍以上

顺序读取

标准性能

开启性能模式后,大文件顺序读带宽提升20倍以上,高并发小文件带宽提升10倍以上

开启性能模式后,大文件顺序读带宽提升20倍以上,高并发小文件带宽提升10倍以上

随机写入

支持,标准性能

  • 未开启性能模式:支持,标准性能

  • 开启性能模式:不支持,返回报错 Operation not supported

支持,标准性能

随机读取

支持,标准性能

支持,标准性能

支持,标准性能

多线程读同一文件

支持

  • 未开启性能模式:支持

  • 开启性能模式:不支持,多线程读取同一文件会导致缓存频繁清理,操作无法正常执行

支持

内存控制方式

使用磁盘缓存,内存占用低

  • 未开启性能模式:使用磁盘缓存,内存占用低

  • 开启性能模式:通过并发参数公式计算内存占用,无硬性限制,并发打满时可能超出预期

  • 未开启性能模式:使用磁盘缓存,内存占用低

  • 开启性能模式:支持设置内存上限,防止打满内存

兼容性

不涉及

完全向下兼容V1.1.0版本,默认不启用性能模式

完全向下兼容V1.1.0和V1.2.0版本,默认不启用性能模式

适用场景

通用文件访问场景

以顺序读写为主的 AI 训练、大数据分析场景

全场景覆盖,推荐优先使用,适配通用业务、AI 训练、大数据场景

操作使用限制

  • 使用vim编辑文件时会报错提示,但文件内容可正常修改保存

  • truncate操作仅支持清空文件,不支持将文件截断至指定大小

开启性能模式与未开启性能模式对比

操作类型

开启性能模式(V1.2.0+)

未开启性能模式

顺序写入

单线程大文件顺序写入场景下,开启性能模式的带宽提升20倍以上

标准性能

顺序读取

  • 单线程或多线程(4线程)大文件顺序读取场景下,带宽提升20倍以上

  • 高并发(128线程)读取小文件的场景下,带宽提升10倍以上

标准性能

随机写入

  • V1.2.0版本执行逻辑:不支持,报错 Operation not supported

  • V1.3.0版本执行逻辑:自动降级为普通写,支持但不加速

支持

随机读取

支持(但不走预读,无性能提升)

支持

内存占用

较高(需根据并发数预留内存)

较低(磁盘缓存)

1. 关于ks3fs性能测试结果,请参见文档:ks3fs读写性能测试

2. ks3fs从V1.2.0版本开始支持开启性能模式,默认不开启。

性能相关挂载参数说明

性能模式开启后,您可以通过以下参数调整并发,提升读写性能。

分类

配置项名称

说明

是否必选

性能模式开关

performance

开启读写性能模式,默认不开启。

内存管理配置

memory_limit

总使用内存限制(MB),设置后会根据内存限制自适应调整upload和prefetch的并发程度。

1. 该参数自 V1.3.0 版本起支持。

2. 若不配置此选项,默认取值为系统物理内存的一半。

下载相关参数

prefetch_concurrency

全局预读并发数。

  • 默认值:100

prefetch_concurrency_per_file

单个文件的预读并发数。

  • 默认值:20

prefetch_chunk_size

预读的块大小(MB)。

  • 默认值:10

prefetch_chunks

单文件预读块总数量系数,不设置默认为3,此时单文件预读块总数量为3*20=60。计算公式为:单文件预读块总数量 = prefetch_chunks * prefetch_concurrency_per_file

单个文件总预取内存大小 = prefetch_chunks × prefetch_concurrency_per_file × prefetch_chunk_size = 3 × 20 × 10MB =600MB

上传相关参数

upload_concurrency

全局上传并发数。

  • 默认值:100

parallel_count

单文件上传并发数。

  • 默认值:20

multipart_size

分块上传时单块大小(MB)。

  • 默认值:10

该参数会影响最大支持的文件大小,分块上传时最大仅支持10000块,默认值下,最大支持的文件为95GB。若需上传大于95GB的文件,可适当调大multipart_size参数。

enable_content_crc64

开启CRC64校验,默认不开启。

为了保证数据完整性,在使用V2签名时,强烈建议开启CRC64校验。

内存控制说明

1. 设置内存上限

ks3fs从V1.3.0版本开始新增memory_limit参数,用于指定性能模式内存上限。依托MemoryLimiter管控读写缓冲区内存,避免内存溢出导致掉挂载。

核心机制:

  • 硬性限制:内存达到上限后,新的内存请求排队等待内存释放。

  • 公平排队:各文件句柄独立FIFO队列,内存释放优先响应队首请求。

  • 热更新:支持配置文件热更新,修改参数无需重新挂载。

参数推导逻辑:

  • 设置了 memory_limit:系统根据内存上限自动设置并发参数。

  • 未设置 memory_limit:由并发参数计算内存上限,最大不超过系统物理内存一半。

2. 设置并发参数

如果仅设置并发参数不设置内存上限,ks3fs将根据并发参数占用内存计算公式预估内存占用大小,确保不超过系统可用内存。

1. 总内存占用 = 下载内存占用 + 上传内存占用

2. 下载内存公式:min(prefetch_concurrency, prefetch_concurrency_per_file × 文件数) × prefetch_chunks × prefetch_chunk_size + 超额文件数 × prefetch_chunk_size × prefetch_chunks

3. 上传内存公式:min(upload_concurrency, parallel_count × 文件数) × multipart_size + 超额文件数 × multipart_size

场景

操作流

内存计算方式

下载

KS3 → 本地

仅计算下载内存

上传

本地 → KS3

仅计算上传内存

复制

KS3 → KS3

计算下载内存 + 上传内存

场景一:下载

计算示例(基于默认参数):

同时处理文件数

超额文件数

是否降级

下载基础内存

下载额外内存

下载总内存

3个

0

min(100, 60)×3×10 = 1800MB

0MB

1.76GB

5个

0

min(100, 100)×3×10 = 3000MB

0MB

2.93GB

10个

5

min(100, 200)×3×10 = 3000MB

5×10×3 = 150MB

3.08GB

15个

10

min(100, 300)×3×10 = 3000MB

10×10×3 = 300MB

3.22GB

场景二:上传

计算示例:

同时处理文件数

超额文件数

是否降级

上传基础内存

上传额外内存

上传总内存

3个

0

min(100, 60)×10 = 600MB

0MB

0.59GB

5个

0

min(100, 100)×10 = 1000MB

0MB

0.98GB

10个

5

min(100, 200)×10 = 1000MB

5×10 = 50MB

1.02GB

15个

10

min(100, 300)×10 = 1000MB

10×10 = 100MB

1.07GB

场景三:复制

总内存 = 下载内存 + 上传内存

同时处理文件数

超额文件数

是否降级

下载总内存

上传总内存

下载+上传总内存

3个

0

1.76GB

0.59GB

2.35GB

5个

0

2.93GB

0.98GB

3.91GB

10个

5

3.08GB

1.02GB

4.1GB

15个

10

3.22GB

1.07GB

4.29GB

使用示例

示例1:开启性能模式

如需开启,挂载时增加 -o performance 参数:

ks3fs bucket:/path /mnt/ks3 \
  -o url=http://ks3-cn-beijing.ksyuncs.com \
  -o sigv4 \
  -o region=BEIJING \
  -o performance

机器内存为8-16GB时的配置:

ks3fs bucket:/folder /mnt/ks3 \
  -o url=http://ks3-cn-beijing.ksyuncs.com \
  -o sigv4 \
  -o region=BEIJING \
  -o performance \
  -o prefetch_concurrency=160 \
  -o upload_concurrency=160

示例2:设置内存上限

使用memory_limit直接控制内存上限,系统自动计算并发参数:

ks3fs bucket:/path /mnt/ks3 \
  -o url=http://ks3-cn-beijing.ksyuncs.com \
  -o sigv4 \
  -o region=BEIJING \
  -o performance \
  -o memory_limit=8192

示例3:同时设置内存上限和并发参数

ks3fs bucket:/folder /mnt/ks3 \
  -o url=http://ks3-cn-beijing.ksyuncs.com \
  -o sigv4 \
  -o region=BEIJING \
  -o performance \
  -o memory_limit=8192 \
  -o prefetch_concurrency=160

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈