Почему сервер при загрузке ЦП 40% может вести себя как при полностью утилизированных процессорах
Глубокое погружение в справедливость планировщика SOS, сборку мусора Hekaton, сканирование хэш-индексов и почему накопительное обновление CU5 для SQL Server имеет гораздо большее значение, чем думает большинство администраторов баз данных.
В двух словах
- SQL Server использует кооперативное планирование через планировщик SOS (SOS Scheduler), и рабочие процессы должны добровольно уступать ЦП (yield).
- Накопительное обновление SQL Server CU5 улучшает справедливость планировщика (scheduler fairness) во время сканирования сборки мусора хэш-индексов в In-Memory OLTP.
- Голодание ЦП (CPU starvation) может происходить даже тогда, когда общее использование ЦП выглядит умеренным.
- Неправильный размер корзин (bucket sizing) хэш-индексов и длинные цепочки версий могут резко увеличить затраты на обход сборщика мусора.
- Постоянный рост
runnable_tasks_countчасто опаснее, чем процент загрузки ЦП.





