Проблема
При использовании нового экземпляра Microsoft SQL Server 2016 (или 2017) или экземпляра SQL Server 2016 (или 2017), обновленного с более ранней версии SQL Server, возникают проблемы с производительностью из-за высокой загрузки ЦП. Кроме того, при запросе таблицы sys.dm_os_spinlock_stats вы заметите большое значение в столбце spins для строк SECURITY_CACHE (кэш безопасности) и CMED_HASH_SET (кэш метаданных) (по сравнению с другими строками в таблице). Например, вы заметите следующие значения.
Причина
Эта проблема возникает из-за конфликтов за блокировку спина в системе с высокой степенью параллели. В этих операционных системах несколько потоков ЦП конкурируют за ресурсы и вращаются за расширенный интервал, пока они периодически выполняются в цикле, чтобы определить, доступен ли ресурс, а не немедленно возвращается. Если несколько потоков ЦП продолжают вращаться ( в цикле времени) для ресурса, а не давать, это приводит к проблемам с высокой загрузкой ЦП и производительностью.
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
- Накопительный пакет обновления 21 для SQL Server 2017
- Накопительный пакет обновления 2 для SQL Server 2016
Примечание После применения накопительного пакета обновления 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 подробно рассматриваются проблемы и решения, связанные с состязанием за спин-блокировку.