Azurite occasionally gets very slow performance with multiple containers
See original GitHub issueWhich service(blob, file, queue, table) does this issue concern?
Blob
Which version of the Azurite was used?
I have pulled down the latest docker image from mcr.microsoft.com/azure-storage/azurite
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
DockerHub via Docker on Fedora 33.
What’s the Node.js version?
I would imagine that doesn’t matter for the docker version.
What problem was encountered?
I’m having a hard time pinning down the exact reproduction case, but it goes something like this. Azurite is configured through the following docker-compose block
azurite:
image: "mcr.microsoft.com/azure-storage/azurite"
container_name: aip-azurite
restart: unless-stopped
ports:
- 10000:10000 # Storage
- 10001:10001 # Queues
volumes:
- azurite:/data
environment:
# Have azurite pretend to be multiple storage accounts so we can use it for the entire local setup
# The last storage account is the "default" one for the emulator so anything relying on the default account existing will still work.
# Zm9v is "foo" base64encoded
- "AZURITE_ACCOUNTS=stoperational001:Zm9v;stingest001:Zm9v;stcontext001:Zm9v;stcoord001:Zm9v;devstoreaccount1:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
command: "azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --loose -l /data"
As you can see, there’s multiple containers and multiple hosts, and it has a mounted datapath that is a docker volume.
At some point after use (Docker volume shows 500mb+ used), Azurite just starts to… hang. Response times go from very snappy to multiple seconds, and as a result services start timing out.
I can reproduce this semi-reliably by putting load on two or more containers. You’d think this would just be a normal performance limitation, but even after restarting Azurite, the performance is still so degrade that it’s not really usable.
I would love to try to pin down the issue further, but I’m unsure what logging switches I can dial to get some performance characteristics.
Have you found a mitigation/solution?
Clearing docker volume and restarting everything.
Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (3 by maintainers)
Top GitHub Comments
@GeeWee
You can collect debug log with --debug parameter. And as you are on Docker, you also need map the debug log folder to a local folder, like :
docker run -p 10000:10000 -p 10001:10001 -v C:\workspace:/workspace mcr.microsoft.com/azure-storage/azurite azurite -l /workspace -d /workspace/debug.log --blobHost 0.0.0.0 --queueHost 0.0.0.0
,and get debug log in local folder C:\workspaceApologies. I have attached more logs to the following gist
I have also uploaded the full log to OneDrive - note however that it’s 250mb so reasonably large.