0

Previously I was using an EC2 machine to download the file using pre signed URL and the client will download from EC2 machine(V1 arch).

Now we are giving pre signed URL directly to the client and the client is downloading the file using that.(V2 arch)

Same way it is for upload.

I was assuming that as in I have reduced the number of hops the response time will reduce but the performance is degraded. I am using jMeter to measure the performance. I ran for 10 min and the stats are:-

Download

v1 95% client > 9000ms , Avg > 5000ms

v2 95% client > 24000ms , Avg > 10000ms

Upload

v1 95% client > 33000ms , Avg > 14000ms

v2 95% client > 84000ms , Avg > 72000ms

So i need to know why it is degraded even though one machine hop is reduced? Is there anything I am missing? How to improve the performance?

Shivay
  • 145
  • 2
  • 14
  • The most obvious question that comes to my mind is whether you have stepped back from jMeter and simply run some one-off behavior tests with `curl`. These benchmarks are so bad it suggests a problem with the test methodology, or that your server is extremely slow in returning the signed URL. You can't fix the performance until you understand the nature of the performance issue. Where the client is located could also skew performance, particularly for parallel tests, if it is constrained for bandwidth. – Michael - sqlbot Apr 14 '17 at 22:41
  • I have tried from curl as well. V2 is taking around 20% then v1. – Shivay Apr 19 '17 at 08:07
  • Getting presigned URL from AWS time is not included in v2. – Shivay Apr 19 '17 at 08:07
  • Note that you don't "get" a pre-signed URL from AWS. Your code (or the SDK you're using) generates them internally, locally, so time should be minimal. Are the bucket and the instance in the same AWS region? And, where are they in comparison to where you are testing from? Have you tested using S3 transfer acceleration? – Michael - sqlbot Apr 19 '17 at 10:12

0 Answers0