Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.83k stars 325 forks source link

Concurrency limits #705

Open Piedone opened 3 years ago

Piedone commented 3 years ago

Not a bug but a question. Let me know if this is not the right place to ask.

Can you give some idea on how Azurite scales? The docs says that:

Azurite is not a scalable storage service and does not support many concurrent clients. There is also no performance and TPS guarantee, they highly depend on the environments Azurite has deployed.

We'd like to use Azurite as the storage for an ASP.NET Core app when running UI tests on it, to see if it has any issues with storage once deployed to Azure and using Blob Storage. We're usually running dozens of concurrent tests at a given time up to the hardware limits of the machine (a VM with 16 vCPU cores, 64GB of RAM, SSD storage). Can we say that as long as the machine's hardware is not saturated Azurite will continue to serve requests or is there some inherent limitation?

Thank you!

XiaoningLiu commented 3 years ago

Hi @Piedone By default, Azurite cannot take full use of all CPU cores due to limitation of Node.js. That's the main bottoleneck. Recommendation is to do some performance testing based on your workload to see if Azurite can meet your requirement.

Piedone commented 3 years ago

I see, thank you. This is what you're referring to by Node.js limitations?

Piedone commented 3 years ago

Could you reply here, please?

edwin-huber commented 3 years ago

Yes, for our emulator usage, NodeJs is Single threaded, and Azurite will process requests serially. Clustering will not improve the behavior, and we are using LokiJs for storage and cross platform support.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.