У меня есть сервер 2012R2 с установленным SQL Server 2014 Express SP2. Есть несколько приложений и баз данных, но ничего слишком большого. Базы данных небольшие, около 100 МБ вместе взятых.
В какой-то момент (не с самого начала) процесс SQL Server начал показывать постоянную высокую загрузку ЦП. Обычно загрузка процессора составляет около 15-20%. Он показывает периодическое изображение с минутой нагрузки 15-20% и парой секунд использования 0% между периодами. Иногда SLQ Server останавливается для этого (что бы он ни делал ...) примерно на 2 минуты, затем запускается снова с 10-20 секундами> 95% нагрузки и "обычными" 15-20% после ...
Конечно, это влияет на производительность пользователей.
Я исследовал все, что мог (отчеты о сеансах, отчеты о запросах, профилировщик, выделение памяти SP ...), но не нашел ничего, что могло бы вызвать это. Или, точнее, я обнаружил, что в установленных приложениях нет сеансов, запросов и ничего, что могло бы так сильно загрузить процессор. Я попытался закрыть все приложения, использующие SQL Server, и отсоединить их БД, а затем перезапустить сервер. Бесполезно.
Я даже удалил / переустановил SQL Server, но он начал потреблять ЦП вскоре после запуска, будучи «чистым».
Кроме того, не было никакой «необычной» конфигурации, это была просто чистая виртуальная машина с простой установкой SQL Server. Я его установил, создал БД, логины и все.
Почему SQL Server использует так много ЦП, даже если нет запросов и подключенных БД? Как мне хотя бы узнать, что происходит?
Также по ссылке https://mssqlwiki.com/2012/10/04/troubleshooting-sql-server-high-cpu-usage/Я проверил возможную проблему с таймером, которая может быть вызвана схемой электропитания или другими настройками. Использование -T8038 при запуске не повлияло на загрузку процессора.
Проблема в следующем.
Пусть виртуальная машина Hyper-V настроена с высокой загрузочной памятью (например, 10240 МБ), а ограничения динамической памяти активны и составляют диапазон от 512 до 10240.
ВМ запускается с полным объемом доступной оперативной памяти. Вскоре после загрузки хост освобождает излишнюю память виртуальной машины. В тот же момент процесс SQL Server начинает создавать необъяснимую нагрузку на ЦП.
Однако этого не происходит, если размер загрузочной памяти равен 512 МБ.