Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pick up parallel read for s3 #696

Merged
merged 1 commit into from
Oct 17, 2023
Merged

pick up parallel read for s3 #696

merged 1 commit into from
Oct 17, 2023

Conversation

TingDaoK
Copy link
Contributor

@TingDaoK TingDaoK commented Oct 16, 2023

  • pick up Parallel prepare - open file on needed aws-c-s3#355
  • which increase the performance for uploading a single large file on EC2 machines
  • By using our benchmark we have here, we verify that with this change on a cold started (Without file caching by OS) c5n.18xlarge machine, running a 30GiB file upload, the result is:
> java -jar /home/ec2-user/fast_ebs/aws-crt-s3-benchmarks/runners/s3-benchrunner-crt-java/target/s3-benchrunner-crt-java-1.0-SNAPSHOT.jar ../benchmarks/upload-30GiB.run.json test-s3-benchmark us-west-2 100.0
Run:1 Secs:31.788 Gb/s:8.1 Mb/s:8106.8 GiB/s:0.9 MiB/s:966.4
Run:2 Secs:10.323 Gb/s:25.0 Mb/s:24964.1 GiB/s:2.9 MiB/s:2976.0
Run:3 Secs:8.218 Gb/s:31.4 Mb/s:31356.4 GiB/s:3.7 MiB/s:3738.0
Run:4 Secs:8.797 Gb/s:29.3 Mb/s:29295.1 GiB/s:3.4 MiB/s:3492.3
Run:5 Secs:8.557 Gb/s:30.1 Mb/s:30113.8 GiB/s:3.5 MiB/s:3589.8
Run:6 Secs:7.567 Gb/s:34.1 Mb/s:34054.2 GiB/s:4.0 MiB/s:4059.6
Run:7 Secs:10.173 Gb/s:25.3 Mb/s:25331.2 GiB/s:2.9 MiB/s:3019.7
Run:8 Secs:9.897 Gb/s:26.0 Mb/s:26039.2 GiB/s:3.0 MiB/s:3104.1
Run:9 Secs:9.621 Gb/s:26.8 Mb/s:26784.5 GiB/s:3.1 MiB/s:3193.0
Run:10 Secs:10.150 Gb/s:25.4 Mb/s:25390.0 GiB/s:3.0 MiB/s:3026.7
  • while from main branch, the same test has the result as:
> java -jar /home/ec2-user/fast_ebs/aws-crt-s3-benchmarks/runners/s3-benchrunner-crt-java/target/s3-benchrunner-crt-java-1.0-SNAPSHOT.jar ../benchmarks/upload-30GiB.run.json test-s3-benchmark us-west-2 100.0
Run:1 Secs:105.977 Gb/s:2.4 Mb/s:2431.6 GiB/s:0.3 MiB/s:289.9
Run:2 Secs:13.957 Gb/s:18.5 Mb/s:18463.8 GiB/s:2.1 MiB/s:2201.1
Run:3 Secs:14.776 Gb/s:17.4 Mb/s:17439.8 GiB/s:2.0 MiB/s:2079.0
Run:4 Secs:16.043 Gb/s:16.1 Mb/s:16062.7 GiB/s:1.9 MiB/s:1914.8
Run:5 Secs:14.829 Gb/s:17.4 Mb/s:17377.9 GiB/s:2.0 MiB/s:2071.6
Run:6 Secs:14.789 Gb/s:17.4 Mb/s:17424.8 GiB/s:2.0 MiB/s:2077.2
Run:7 Secs:16.562 Gb/s:15.6 Mb/s:15559.9 GiB/s:1.8 MiB/s:1854.9
Run:8 Secs:13.211 Gb/s:19.5 Mb/s:19505.7 GiB/s:2.3 MiB/s:2325.3
Run:9 Secs:13.331 Gb/s:19.3 Mb/s:19330.5 GiB/s:2.3 MiB/s:2304.4
Run:10 Secs:12.489 Gb/s:20.6 Mb/s:20633.3 GiB/s:2.4 MiB/s:2459.7

We can see a significant improve on every run.

  • From the first run without any caching, we saw the performance improved from 2.4 Gb/s to 8.1 Gb/s, which is the limits of EBS
  • From the following runs, as the file cached by OS, we saw improvement from 16~20 Gb/s to 25~34 Gb/s.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@TingDaoK TingDaoK merged commit dba6097 into main Oct 17, 2023
@TingDaoK TingDaoK deleted the pickup-para-read branch October 17, 2023 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants