1,背景介绍
公司最近最近统一了存储环境,由ftp文件存储全量转换为ceph存储。有业务组表示以前往ftp文件批量上传30万个文件1.3GB只需要16分钟左右。切换为ceph存储需要1个多小时,也就是现在现有的速度只有369kb/s。询问能如何改进。
公司内部网络和存储环境进行了压力测试。
ceph 存储系统调研读写性能测试的报告如下
我们是采用s3的接口进行文件上传的,也就是对于上面的cephrgw的接口。大概在20MB/s的速度。
2,首先我使用java程序进行验证。
发现他发给我的数据集确实以很慢的速度进行上传。和普通的文件上传具有10倍的差距左右。在调整aws-java-s3的sdk的线程池的大小后。效果也是不明显的。我采用jconsole观察线程的使用情况
3,使用AWS CLI进行快速验证
AWS CLI采用python编写,具有较为完备的日志。
安装指南:https://docs.amazonaws.cn/cli/latest/userguide/install-windows.html
调整并发数量和配置日志:https://amazonaws-china.com/cn/blogs/china/amazon-s3-depth-of-practice-series-s3-cli-depth-parsing-and-performance-testing/
批量生成不同大小的文件我采用了Bandizip(7zip只支持1MB以上的分卷大小):http://www.bandisoft.com/bandizip/
并发请求数量和分片大小我设置为:
s3 =
max_