We have a Sitecore 9.2 setup using the S3 profile for the CD with 3 instances scaled out manually. I'm pretty new to managing the PaaS environment, and I'm trying to figure out if the traffic is load-balanced between the 3 instances automatically, or if we need to set that up to help divvy up the load balacing. Our client has been seeing performance degraded since we upgraded from 8.2.3 on VMs to 9.2 on PaaS, to where average page load is 100% higher and average server response time is over 200% higher on PaaS. I want to get these tuned, and I figure the first step is ensure the load is being distributed.
You should swap to P2 from S3. P2 has the same price, but on newer CPUs and better underlying infra (Dv3-series instead of A-series).
Traffic is automatically load balanced across instances, but affected by the Configuration setting (in Azure) called
ARR affinity on the
General Settings tab. This adds a header that forces traffic from one client to consistently go to the same origin instance... usually.
Turn that setting to "Off" to have proper round-robin load balancing, but you must have out-of-process session state for that, so SQL or Redis (SQL actually performs best on Azure from our real-world testing... go figure).
I know you said "CD" already, but worth mentioning you mostly should not multi-instance your CM because Sitecore does not support out-of-process session state on CM roles as at 9.3.