S3写入速度过慢如何优化?NFS转S3性能问题咨询
S3写入性能优化及大文件传输方案
一、s3cmd 提速配置调整
针对你使用s3cmd 2.1.0上传仅达8.45MB/s的情况,可通过以下配置优化:
- 增大分块大小:默认分块为15MB,在
~/.s3cfg中修改multipart_chunk_size = 64(单位MB),更大分块能减少请求开销,适配大文件传输。 - 开启并发上传:设置
multipart_max_chunks = 10,同时上传多个分块,充分利用带宽并行处理。 - 启用多进程:添加
num_processes = 4,通过多进程提升上传并行度。 - 临时关闭校验(仅测试用):若无需MD5校验,设置
check_hash = False可减少计算开销,但生产环境不建议长期关闭。
修改后可通过以下命令测试:
s3cmd put --multipart-chunk-size=64 --multipart-max-chunks=10 --num-processes=4 your_file.tgz s3://yetest/backups/
二、大文件传输的其他配置方案
除s3cmd调整外,还有这些方案可选:
- 替换为AWS CLI:AWS CLI对并行上传的优化更成熟,默认支持多线程,示例命令:
aws s3 cp your_file.tgz s3://yetest/backups/ --multipart-chunk-size 64MB --parallel-count 10 - 开启S3传输加速:若客户端与S3区域跨地域,开启传输加速后可借助CloudFront边缘节点中转,显著提升跨区域上传速度。
- 本地预处理:优先压缩文件以减小体积;或用
split将大文件拆分为多个小文件并行上传,之后在S3合并(适合特殊场景,常规分块上传工具已支持该逻辑)。 - 网络排查:确认本地带宽未被其他进程占用,若跨地域传输,尽量选择离客户端更近的S3区域。
三、常见S3写入性能参考
- 同区域上传:在AWS同可用区内,使用优化后的工具(如AWS CLI),单文件上传速度通常可达100MB/s以上,10GB+大文件甚至能逼近本地带宽上限(如1Gbps带宽可达到120MB/s左右)。
- 跨区域上传:未启用传输加速时,速度多在30-80MB/s;启用后可提升至60-150MB/s,具体取决于跨区域网络质量。
- 批量文件并行上传:针对大量小文件,通过多线程/多进程并行传输,总吞吐量可轻松达到数百MB/s,甚至超过NFS的传输速度。
上传日志翻译
上传: '' -> 's3://yetest/backups/si106-251/si106-251.20221219202432.tgz' [第299块,15MB]
15728640 / 15728640 100% 用时1秒 8.45 MB/s 完成
上传: '' -> 's3://yetest/backups/si106-251/si106-251.20221219202432.tgz' [第299块,15MB]
15728640 / 15728640 100% 用时1秒 8.45 MB/s 完成 <------ 此处为8.45MB/s的记录
内容的提问来源于stack exchange,提问作者Gr8DBA
相关产品推荐
相关产品推荐

