We have noticed a weird behaviour on Preproduction on DXP. The enviroment is very slow sometimes and I can replicate the behaviour by changing Query-params. Se below:
If we run the same code and DB on Integration we get these results:
We had the same problem before we implemented the serviceworker, and have the SW.JS on both enviroments - so it shouldn't anything to do with it.
We are going to try to override some default behaviour to put timestamps on the processor to see if it has anything to do with this. But we do run the imageprocessor on our local dev enviroment and Integration, so it shouldn't be at fault?
Checking the Request Headers on request #2 it says:cf-cache-status: MISS
It seems like disabling the property fcnMode (fcnMode ="Disabled") in web.config fixes the problem.
My theory is that rendering an image with parameters that has not been rendered before, like changing width from 830 to 840, triggers a restart of the app service and that is why we saw "DXCWarmupDelay" in AI.
What's the old value specified in your config? I'm curious what has been done in your CMS triggers the app restart. In theory, when app restarts, there must be many files changed triggers Overwhelming File Change Notifications.
Old value: <httpRuntime targetFramework="4.7.2" requestValidationMode="2.0" fcnMode="Single"/>
<httpRuntime targetFramework="4.7.2" requestValidationMode="2.0" fcnMode="Single"/>
I think that because we use ImageProcessor, it saves a copy of the new size to disk, which triggered the App restart.
That's interseting. When fcnMode is set to Single, it should drastically reduces the chance of overwhelming File Change Notifications. I think the biggest issue in your solution is to save the copy of new size to disk
Episerver highly recommends to store code only within the WebApp, all contents should be stored in Blob storage (see more details from link below). You'll experience unexpected bebaviors like stability and performance issues once your app exceed / close to the upbound limit 900MB (this is current DXP setting according to the doc)
I suggest you switch to Blob cache provider in preproduction and production environment, the ImageProcessor cache config file can be located at /config/imageprocessor/cache.config