Unreal Engine startup is slow in an Azure environment

(This is a translation of a [Japanese [Content removed] by Kawamoto Yuuichirou.)

I am developing a Pixel Streaming application using Unreal Engine in an Azure environment. A similar application is running in an OCI environment, and I am currently trying to migrate it to Azure. The trouble is, however, that in the Azure environment, Unreal Engine takes more than twice as long to start up, compared to OCI. So I’d appreciate it if you could tell me how I can improve this.

(Startup time: approx. 1 minute 30 seconds on OCI, approx. 3 minutes on Azure)

On the hardware side, both Azure and OCI are equivalent in terms of hardware specs. On the infrastructure side, the infrastructure vendor is currently investigating if there are any issues. So, if you have any application-level insights or suggestions, it would be helpful to share them with me.

Initially, Pixel Streaming had very low fps in the Azure environment. This was improved by adding -RenderOffscreen and -ForceRes parameters to the Unreal Engine startup options. (OCI did not require these parameters and worked fine without them.)

Are there any similar settings or parameters that can improve the startup speed in the Azure environment?

Thanks.

Hello!

Is the startup time consistent if you start the application multiple times in a row? We suspect that the problem might be related to the caching of the data in the VM environment. In this case, the first time would take longer and subsequent launches would be faster.

You could try to order your pak files which should improve the startup\load time in all cases. https://dev.epicgames.com/documentation/en\-us/unreal\-engine/packaging\-unreal\-engine\-projects?application\_version\=5\.3\#orderingyourpakfile

Regards,

Martin

It would be interesting to get Insights traces for the startup in both environments. We might be able to understand the difference between them by comparing the traces.

  • Launch the the project by adding the following arguments: -trace=default -tracefile
  • Wait for the initialization to be completed
  • Quit the editor
  • This will generate a utrace file under <Project>\Saved\Profiling

Please share the traces so we can review them.

[mention removed]​

Attach them again.

The problem appears to be at the disk level as I suspected. Either the hardware or maybe there is a virus scanner that slows things down. I’m seeing a 2x difference in time spent loading the engine and plugin DLLs (12s on OCI vs 24s on Azure for the Windows_Loadlibrary event). There are other event that do depend on reading data which are longer on the Azure side.

Another thing that I could see in the Azure side is some get from the DDC cache for textures. This should normally end cached in the local DDC and be sourced locally and faster on the next run.

The OCI session could actually start faster. I see that it is connection to a Perforce server and this is taking 21 seconds. The Azure session seems to connect much faster unless there is an immediate failure.

[mention removed]​

(This is a translation of a Japanese post by Kawamoto Yuuichirou.)

Thank you very much for your reply.

> Is the startup time consistent if you start the application multiple times in a row?

Yes, it is. (So it seems that the issue is not related to caching.)

> You could try to order your pak files which should improve the startup\load time in all cases.

I am not packaging the application, but am using it with the Editor without packaging. (I am not creating a pak file.)

Thank you.

[mention removed]​

(This is a translation of a Japanese post by Kawamoto Yuuichirou.)

I have attached trace files captured in the Azure/OCI environment.

Please check them.

Thanks.