We recently upgraded a very lightly used SQL server (running < 5% CPU 99% of the time) from 2012 to 2016. In conjunction, we moved the server from an AWS t2 to a t3 instance and installed the new NVMe drivers.
All is working well except the CPU has a baseline load of 50% (all from SQL server) now. I have dug on the issue for 2 days and seem to have narrowed it to the following 2 threads in SQL which together account for 99% of cpu time. They seem to be related to the resource monitor.
spid cpu percentileCPU physical_io memusage cmd lastwaittype 36 6430844 71 0 0 RESOURCE MONITOR PREEMPTIVE_XE_CALLBACKEXECUTE 14 2561536 28 0 0 RESOURCE MONITOR ONDEMAND_TASK_QUEUE
I am very certain this server is not loaded (it is on, but no queries, not network load, etc --- It is a legacy server we must maintain for contract reasons, but has minimal clients)
This 50% CPU load is running up a large AWS bill as it is on t3 instance and being charged SurplusCPUCredits.
Can anyone help me understand what these Resource Monitor Processes are and provide any ideas on ways to eliminate / trouble shoot this performance issue?
Thank you Internet!