question

vsipranav avatar image
0 Votes"
vsipranav asked AlexHatcher-7592 edited

Getting very slow speed while downloading storage blob.

Hello,
I am getting very slow speed while downloading the storage blob from Azure storage account. I am using .net core 3.1 web api application to download it and return it with api response. Following is the code.

BlockBlobClient blockBlobClient = blobContainerClient.GetBlockBlobClient(filepath);

if (await blockBlobClient.ExistsAsync() == false)
{
return BadRequest("blob " + blockBlobClient.Name + " is not present");
}

Stream blockBlobStream = await blockBlobClient.OpenReadAsync();

return File(blockBlobStream, blockBlobClient.GetProperties().Value.ContentType, blockBlobClient.Name);

Azure account details
Performance tier: Standard/Hot
location: Central US, East US 2
replication: Geo-redundant storage (GRS)
account kind: BlobStorage

I am not getting whether this is the issue in my code or should I use any other method to download or is it the problem from Azure storage account or bandwidth related issue. Kindly please let me know if anyone knows the solution.

Thanks in advance..

azure-blob-storage
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

SumanthMarigowda-MSFT avatar image
3 Votes"
SumanthMarigowda-MSFT answered SumanthMarigowda-MSFT commented

@vsipranav-0854 May I know what download speed are getting and How much data are you downloading?
You can use Azure speed test tool to check the speed: https://www.azurespeed.com/Azure/Download

There is similar discussion threads, You may also refer to the suggestion mention in this Q&A forum and GitHub and let me know the status.
Can you try downloading same data using azcopy tool and check are you getting the same download speed?

Additional information: There is no throttling on the Azure side below the published 60 MB/s scalability target for a single blob. If the network and client machine can handle the traffic then we will send it.

Here's a guide for troubleshooting high E2E latency: https://docs.microsoft.com/en-us/azure/storage/common/storage-monitoring-diagnosing-troubleshooting#metrics-show-high-AverageE2ELatency-and-low-AverageServerLatency

You can also, refer the below documentation for azure storage performance. If it doesn’t I would recommend you create a technical support ticket to find the root cause of the issue. The ticket enables you to work closely with the support engineers and get a quick resolution for your issue. If you don't have the support plan we will try and help you get a one-time free technical support. In this case, could you send an email to AzCommunity[at]Microsoft[dot]com referencing this thread as well as your subscription ID. Please mention "ATTN subm" in the subject field. Thank you for your cooperation on this matter and look forward to your reply.

Microsoft Azure Storage Performance and Scalability Checklist

Additional information:

  var ms = new MemoryStream();
  await blobClient.DownloadToAsync(ms).ConfigureAwait(false);
  var blobStream = await blobClient.OpenReadAsync().ConfigureAwait(false);
  var props = await blobClient.GetPropertiesAsync().ConfigureAwait(false);
  return File(blobStream, props.Value.ContentType, blobClient.Name);

Hope this helps! Kindly let us know if the above helps or you need further assistance on this issue.


Please don’t forget to "Accept the answer” and “up-vote” wherever the information provided helps you, this can be beneficial to other community members.

· 2
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

@vsipranav-0854 Just checking in to see if the above answer helped. If this answers your query, please don’t forget to "Accept the answer" and Up-Vote for the same, which might be beneficial to other community members reading this thread. And, if you have any further query do let us know.

1 Vote 1 ·

@vsipranav-0854 Just checking in to see if the above answer helped. If this answers your query, please don’t forget to "Accept the answer" and Up-Vote for the same, which might be beneficial to other community members reading this thread. And, if you have any further query do let us know.

1 Vote 1 ·
dorathoto avatar image
0 Votes"
dorathoto answered SumanthMarigowda-MSFT commented

in 2020, the speed is still ridiculous!
in my region (Brazil) I can download 2mbp/s
in other regions 120kpbs
Even having a dedicated 450mbp/s fiber optic internet that I usually download at 40Mb/s
I did a test and on AWS outside my region I downloaded it at 32mb/s while on Azure 128kbp/s

I'm an Azure fan, but that makes me understand why AWS is so ahead of Azure.

· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

@dorathoto Firstly, apologies for the delay in responding here and any inconvenience this issue may have caused. I would assume have you tried the above mentioned suggestion, If the issue still persist, please create a new thread. We would like to work closer on this issue.

Thanks!

0 Votes 0 ·
EricEvans-2091 avatar image
0 Votes"
EricEvans-2091 answered

We have had speed problems as well. For us it all started a month ago after the outage and since then we've had batch tasks timing out on a regular basis that previously had no issues. MS told us to build new pools, which we did, and it made no difference. I've been monitoring the storage E2E latency and seeing random times up to 18 seconds! We've also had SQL timeout issues since the outage where a job will timeout after 20 minutes with SQL pegged but then when we run it again, it runs completely in just a minute. All of the communication occurs within Azure itself and again, this all started right after the outage a month ago.

5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

PeterDrier-7201 avatar image
0 Votes"
PeterDrier-7201 answered EricEvans-2091 commented

I'm seeing something similar. But it's very inconsistent. I'll go to download a blob via the storage explorer (in Chrome) and it'll take 2+ minutes to download 35mb. Then even a minute later I can download the same exact file in 4-6 seconds.

I did a speedtest while waiting on one of the downloads and got 95mbit down at that exact moment. So chances are it's not on my end.

I am using "Shared Access Signatures" on these files. Though one would hope that slowed down the first byte and not the whole file.

-Peter

· 2
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Mine turned out to be a bad cable 2 hops away from my desktop between myself and my ISP. Strangely enough the cable was fine when we had a 100mbit internet connection, but failed when the ISP bit was upgraded to 1gbit.. Even though the cable in question was connecting 2 gigabit switches.

To anyone else reading this thread, check out the "azcopy bench" command first. Quite simply the most efficient way to test a connection (and SAS compliant). Taking a laptop to a friends place w/ gigabit quickly verified the Azure side of things was ok in my case.

0 Votes 0 ·

We're actually getting acceptable speed on a container with millions of blobs but then terrible speed on a container with only 15 blobs yet support refuses to admit that there is an issue.

0 Votes 0 ·
AlexHatcher-7592 avatar image
0 Votes"
AlexHatcher-7592 answered AlexHatcher-7592 edited

i run a 100 Meg upload using AZcopy 10.9 and SAS to Azure Blob

will take 15 minutes behind cisco ASA firewall.

same powershell script on a box bypassing Cisco ASA firewall and it takes seconds.


same SLOW connection will show 800 mbps on microsoft speedtest on both sides of firewall.


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.