OrchardCMS / Orchard

Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform.
https://orchardproject.net
BSD 3-Clause "New" or "Revised" License
2.37k stars 1.12k forks source link

Performance: startup with many tenants #8675

Closed MatteoPiovanelli-Laser closed 1 year ago

MatteoPiovanelli-Laser commented 1 year ago

We are doing a pass to improve performances on our Orchard applications. In particular, we are focusing on the first load, and appliaction startup.

We would like to chat with @sebastienros and whoever else you feel may contribute. We are looking to improve things specifically for application startup here.

Clearly, there are deployment strategies to "mask" the time the application take in starting up the shells. However this startup time scales with the number of tenants and features. Ideally, we are looking to minimize this time for installations with many dozen tenants and few hundred installed features.

We've already found a change we are testing to the ExtensionManager https://github.com/OrchardCMS/Orchard/blob/882fb8eca544c3d87a8634b931df6a4f77b5bd20/src/Orchard/Environment/Extensions/ExtensionManager.cs#L91 by adding a configuration option to disable attempting to load each feature in parallel (which seems to improve startup time in some conditions), and the possibility to cache entire lists of Features (improving this startup step greatly where several tenants share a common configuration). Once we clean this up and test this properly we can do a PR.

We would still like to discuss further strategies to see how things can be improved.