KB3195888 . ИСПРАВЛЕНИЕ. Высокая загрузка ЦП вызывает проблемы с производительностью в SQL Server 2016 и 2017

Применяется к
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2017 on Linux

Проблема

При использовании нового экземпляра Microsoft SQL Server 2016 (или 2017) или экземпляра SQL Server 2016 (или 2017), обновленного с более ранней версии SQL Server, возникают проблемы с производительностью из-за высокой загрузки ЦП. Кроме того, при запросе таблицы sys.dm_os_spinlock_stats вы заметите большое значение в столбце spins для строк SECURITY_CACHE (кэш безопасности) и CMED_HASH_SET (кэш метаданных) (по сравнению с другими строками в таблице). Например, вы заметите следующие значения.

ошиб.

Причина

Эта проблема возникает из-за конфликтов за блокировку спина в системе с высокой степенью параллели. В этих операционных системах несколько потоков ЦП конкурируют за ресурсы и вращаются за расширенный интервал, пока они периодически выполняются в цикле, чтобы определить, доступен ли ресурс, а не немедленно возвращается. Если несколько потоков ЦП продолжают вращаться ( в цикле времени) для ресурса, а не давать, это приводит к проблемам с высокой загрузкой ЦП и производительностью.

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Примечание После применения накопительного пакета обновления 2 (CU2) SQL Server 2016 имена SECURITY_CACHE и CMED_HASH_SET будут изменены на LOCK_RW_SECURITY_CACHE и LOCK_RW_CMED_HASH_SET соответственно. После применения CU2 значения отображаются следующим образом.

Обновлено

Сведения о накопительных обновлениях для SQL Server

Каждое новое накопительное обновление для SQL Server содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущее накопительное обновление. Ознакомьтесь с последними накопительными обновлениями для SQL Server:

Последнее накопительное обновление для SQL Server 2017 г.

Последнее накопительное обновление для SQL Server 2016 г.

Статус

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.

В техническом документе Диагностика и разрешение конфликтов спин-блокировок на SQL Server подробно рассматриваются проблемы и решения, связанные с состязанием за спин-блокировку.