-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Customer is asserting that V12 Storage SDK has slower performance that V2.1 sdk #9596
Comments
ICM 171649877 has the samples and repro steps |
I was also able to reproduce this perf regression using the customer-provided applications. We are investigating the root cause and how we can make V12 meet or exceed the performance of V2. |
@mikeharder any update on this? fsspec/adlfs#57 is another result of the changes introduced with V12. |
@mgsnuno: Thanks for reporting the issue at fsspec/adlfs#57. If this is indeed a perf regression in azure-storage-blob v12, we would like to investigate and fix it. However, it's not clear to me that fsspec/adlfs#57 is related to this issue. It looks like fsspec/adlfs#57 is about large files, while this issue is specific to small files (600 bytes). Can you please open a new issue in this repo with details for how to repro your scenario, and the size of the perf regression you are seeing from v2 to v12? |
For the original scenario uploading and download 600 byte blobs, using the customer-provided repro app in the ICM, I was able to verify v12 is 7-21% slower than v2:
I was also able to get similar results using the Python perf framework (https://github.com/mikeharder/azure-sdk-perf/tree/master/python/azure-storage-blob-perfstress). I think the next step is for someone to profile the v2 and v12 code, and find areas for improvement in v12. |
Here's the profile investigation Rakshith has done about this issue, while currently there's no obvious clue...https://microsoft.sharepoint.com/teams/AzureDeveloperExperience/_layouts/15/Doc.aspx?sourcedoc={690480f5-58fe-4d8e-ab3e-cb0dcb01b6f0}&action=edit&wd=target%28Services.one%7C7edf4d8f-3cf7-4200-bcd2-567d6a7e429c%2FPerformance%7Cb53f1222-0012-4b47-bcac-13f62d27a6a6%2F%29 |
Note: There was a perf improvement for parallel upload in version 12.3.2 https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.3.2/sdk/storage/azure-storage-blob/CHANGELOG.md#1232-2020-6-12 |
@mikeharder I understand your request, I haven't done it yet because it is pretty clear in dask/adlfs the issue as mentioned in fsspec/adlfs#57, but I don't have code replicating with azure V12 storage alone. The main issue is not the file being big or small and more than speed, it's the memory usage, I see 2x-5x higher memory usage. If you can replicate the issue as I described in fsspec/adlfs#57 awesome, then you can maybe debug the V12 usage. If you want an example without dask, I'll work on it. |
@mgsnuno: We are eager to investigate any performance regression in v12, whether it's lower throughput or higher memory usage. But to investigate we will need a repro using only azure-storage-blob. |
In case it helps anyone else out there: when moving from Azure blob storage v2 to v12, we experienced a significant regression in performance when uploading many small files (-50%). However, we discovered a seemingly undocumented
Using a shared session led to fewer connection round-trips and resulted in performance matching previous levels seen on v2. The original problem was particularly pronounced in our case because we are uploading files from a region in Europe to one in America, but I imagine it can have an impact any time where there are many |
@hermanschaaf: Thank you for reporting this. The missing documentation is a known issue covered by #12122. I opened a new issue #13797 to discuss changing Python to share HTTP connections by default, so you would not need to manually share a |
we are still investigating the problem. Will update this issue once we find anything |
@xiafu-msft is still looking into this. |
@tasherif-msft this one is on you now |
This Perf investigation has been broken up to different pieces below: Currently listing is being tackled first. I will go ahead and close this issue. |
Ask from XClient : Provide suggestions towards this concern and whether we have any upcoming improvements in V12 along these lines.
The customer also wants to know about the support lifecycle timelines for v2, if they decide to continue using v2.
customer is comparing the performance of Python SDK v12 with Python Storage SDK v2.
They observe that SDK v2 performance is better while doing concurrent upload or download of 600 bytes blob 1800 times using ThreadPoolExecutor,.
The code and test results are present in the IcM attachments. Engineer was able to get similar results in-house too.
Ask from XClient : Provide suggestions towards this concern and whether we have any upcoming improvements in V12 along these lines.
The customer also wants to know about the support lifecycle timelines for v2, if they decide to continue using v2.
The text was updated successfully, but these errors were encountered: