This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
Using latest fileshare library preview (19) but same with lts. Performance of .startcopy is God awful on large files.
Using .net 8 and copying from blob to file share, same storage container with large files enabled. Linux container app aervice deployed in same useast region, largest consumption app 2/4 available.
Interestingly the file size looks good when observed in storage explorer but status == pending on async property callback for over a minute when about 500+ MG or so, and degrades exponentially as the size increases.
For a comparison, it takes longer for .startcopy to complete then it does for me to upload from my browser.
Have large files enabled, tried internet and MS routing but no impact.
Expected behavior
startcopyasync should be quick when moving within the same storage container, region etc...
Actual behavior
.startcopy can take minutes to complete when files are large 1GB+ and as file size increases performance degrades exponentially.
Reproduction Steps
Using C# drop a large 1GB and up into blob storage and use the following:
_ = await targetBlob.StartCopyAsync(new Uri(uri));
var targetBlobProperties = await targetBlob.GetPropertiesAsync();
while (targetBlobProperties.Value.CopyStatus)
{
await Task.Delay(TimeSpan.FromSeconds(5));
targetBlobProperties = await targetBlob.GetPropertiesAsync();
}
Library name and version
Azure.Storage.Files.Shares 12.18+
Describe the bug
Using latest fileshare library preview (19) but same with lts. Performance of .startcopy is God awful on large files.
Using .net 8 and copying from blob to file share, same storage container with large files enabled. Linux container app aervice deployed in same useast region, largest consumption app 2/4 available.
Interestingly the file size looks good when observed in storage explorer but status == pending on async property callback for over a minute when about 500+ MG or so, and degrades exponentially as the size increases.
For a comparison, it takes longer for .startcopy to complete then it does for me to upload from my browser.
Have large files enabled, tried internet and MS routing but no impact.
Expected behavior
startcopyasync should be quick when moving within the same storage container, region etc...
Actual behavior
.startcopy can take minutes to complete when files are large 1GB+ and as file size increases performance degrades exponentially.
Reproduction Steps
Using C# drop a large 1GB and up into blob storage and use the following:
_ = await targetBlob.StartCopyAsync(new Uri(uri)); var targetBlobProperties = await targetBlob.GetPropertiesAsync(); while (targetBlobProperties.Value.CopyStatus) { await Task.Delay(TimeSpan.FromSeconds(5)); targetBlobProperties = await targetBlob.GetPropertiesAsync(); }
Environment
.Net Core 8