我的应用程序试图使用S3 Java SDK从S3读取2 MB的文件。它是一个多线程应用程序,可下载不同的块。我正在m5.xlarge实例(4核,16 Gig RAM)上运行此应用。
我使用分块下载获得的最大下载带宽约为30 MBps,而如果将wget公开后在同一文件上使用,则速度最高可以达到100 MBps。我查看了iftop和tcptrack的网络监控,看起来即使并行分块下载也正在重用相同的连接。(正在使用相同的端口)这可能是什么原因以及如何改善读取性能? / p>
这是我从应用程序中获得的
在34秒的带宽中下载了500个块InMBps:29.41176470588235 ChunkSizeInMB:2,threadCount:16
这是来自wget
rksupport@bolt:~$ wget https://s3-us-west-1.amazonaws.com/aXXXXXXXXXX/upload.tar.gz
--2018-09-19 22:36:40-- https://s3-us-west-1.amazonaws.com/XXXXXXXXX/upload.tar.gz
Resolving s3-us-west-1.amazonaws.com (s3-us-west-1.amazonaws.com)... 54.231.236.29
Connecting to s3-us-west-1.amazonaws.com (s3-us-west-1.amazonaws.com)|54.231.236.29|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3122206720 (2.9G) [application/x-gzip]
Saving to: 'upload.tar.gz'
upload.tar.gz 100%[==========================================================================================================================================================================>] 2.91G 91.6MB/s in 31s
2018-09-19 22:37:11 (95.1 MB/s) - 'upload.tar.gz' saved [3122206720/3122206720]
答案 0 :(得分:0)
您是否尝试过配置S3传输加速?
您的VPC中是否有S3端点?
这两个都应使您的下载速度更快。