We have been on Exchange 2019 for over a year now. In the last month, we have noticed some high CPU usage increase happening. We are running it in VMWare ESXi 7 on Windows Server 2019. We were initially running it with 4 cores. We've now bumped it up to 8. NUMA is active on ESXi hosts. Memory is good and it rarely goes above 60%.
What i've discovered is that one of the culprits is the w3wp.exe process (iis). In Task Manager, when I add the Command Line column, I can see where w3wp.exe has this:
C:\windows\system32\inetsrv\w3wp.exe -ap "MSExchangeServicesAppPool" -v "v4.0" -c "C:\Program Files\Microsoft\Exchange Server\V15\bin\GenericAppPoolConfigWithGCServerEnabledFalse.config" -a \.\pipe\iisipmb(some guid) -h ""C:\inetpub\temp\apppools\MSExchangeServicesAppPool\MSExchangeServicesAppPool.config"" -w """" -m 0
I can't read the inetpub\temp\apppool\ config file. I can look at the GenericAppPoolConfigWithGCServerEnabledFalse.config as well as the MSExchangeServicesAppPool_CLRConfig.config.
I noticed there are other w3wp app pools that also look to the GenericAppPoolConfigWithGCServerEnabledFalse.config file. All this file has is GCServerEnabled = false which it appears to have something to do with Garbage Collection. The MSExchangeServicesAppPool_CLRConfig.config DOES have GCServerEnabled set to TRUE.
So i'm not sure exactly what's going on here and if there is actual Garbage Collecting happening or not. 1 config file says it does, the other does not. I know this may not answer the performance question, but I wanted to find out if anyone else has had to investigate this and seen anything similar in their Exchange environment? And are there any recommended tweaks to any of these files that should be done?