SQL Server 100% CPU Utilization-одна база данных показывает высокую загрузку процессора, чем другие
У нас есть SQL server с примерно 40 различными (около 1-5GB каждый) базами данных. Сервер представляет собой процессор 8 core 2.3 G с 32Gigs ОЗУ. 27Gig закреплен на SQL Server. В utliziation процессора является наиболее близким к 100% всегда и потребление памяти-около 95%. Проблема здесь в CPU, который постоянно близок к 100% и пытается понять причину.
Я запустил начальную проверку, чтобы увидеть, какая база данных способствует высокому CPU с помощью - этой сценарий, но я не удалось подробно обосновать, что действительно потребляет CPU. Верхний запрос (из всех DBs)занимает всего около 4 секунд. IO также не является узким местом.
будет ли память виновником здесь? Я проверил разделение памяти, и кэш объектов занимает около 80% памяти, выделенной (27G) для SQL Server. Я надеюсь, что это нормально при условии, что задействовано много SPs. Запуск профилировщика, я вижу много перекомпиляций, но в основном из - за "измененной временной таблицы", " отложенной компиляции" и т. д. и не ясно, являются ли эти перекомпиляции результатом того, что планы выбрасываются из кэша из-за давления памяти
благодарен за любые мысли.
2 ответов
вы можете увидеть некоторые отчеты в SSMS:
щелкните правой кнопкой мыши имя экземпляра / Отчеты / Стандартные / лучшие сеансы
вы можете увидеть лучшие сеансы потребления процессора. Это может пролить свет на то, какие процессы SQL используют ресурсы. Есть несколько других отчетов, связанных с ЦП, если вы посмотрите вокруг. Я собирался указать еще несколько DMV, но если вы уже изучили это, я пропущу его.
можно использовать sp_BlitzCache найти лучшие потребляют CPU запросы. Вы также можете сортировать по IO и другим вещам. Это использует информацию DMV, которая накапливается между перезапусками.
в этой статье выглядит многообещающе.
некоторые stackoverflow доброта от мистера Озара.
по данным этой статья о sqlserverstudymaterial;
помните, что" %привилегированное время " не основано на 100%.Он основан на количестве процессоров.Если вы видите 200 для sqlserver.exe и система ЦП 8 и ЦП, потребляемая от SQLServer.exe-200 из 800 (только 25%).
Если значение "% привилегированное время " больше 30%, то это обычно вызвано неисправными драйверами или антивирусным программным обеспечением. В таких ситуациях убедитесь, что BIOS и фильтрующие диски обновлены, а затем попробуйте временно отключить антивирусное программное обеспечение, чтобы увидеть изменения.
Если" % время пользователя " высокое, то есть что-то потребляющее SQL Server. Существует несколько известных шаблонов, которые могут быть вызваны высоким CPU для процессов, запущенных в SQL Server, включая