Любой не-SQL Server-процесс, который потребляет процессор, может привести к тому, что весь SQL-сервер будет полностью непригодным для использования.
Например, Центр обновления Windows остановит SQL Server во время распаковки сборок .Net.
Любой процесс Антивируса, даже если он настроен на исключение файлов данных и папок SQL Server, может привести к тому, что SQL Server перестает отвечать на запросы при сканировании файлов и распаковке обновленных файлов определений вирусов.
Если у вас установлено какое-либо программное обеспечение для управления, такое как IBM Tivoli Server Monitor, и оно решит использовать 100% одного ядра, вы, вероятно, не сможете ничего сделать, кроме холодного выключения компьютера. Не спрашивайте меня, почему я это поднимаю.
Я мог бы продолжить, но достаточно сказать, что любой сервер с одним ядром просто требует проблем с производительностью и управляемостью. Убедитесь, что любой компьютер с одним ядром сегодня считается непригодным для использования. Черт, мой телефон имеет 8 ядер.
Пока вы это делаете, убедите парня по виртуализации предоставить каждому SQL Server разумное резервирование памяти, которое гарантирует, что память SQL Server не будет выгружена из основной памяти хоста на диск.
Для серьезных SQL-серверов, размещенных на VMware, вы должны настроить VMware в соответствии с Руководством по архитектуре SQL Server на основе VMware .
Это действительно сводится к тому, что одноядерная виртуальная машина может когда-либо запускать только один поток в любой момент времени. Виртуализация не является «серебряной пулей» для такой ситуации «одно ядро на поток».
Приведенные выше пункты учитывают, что Windows NT (кодовая база 1993 года, на которой построены все современные версии Windows) использует упреждающую многозадачность. Упреждающая многозадачность позволяет операционным системам выполнять многозадачность путем принудительного переключения контекста по регулярному расписанию. Даже с вытесняющей многозадачностью сервер с одним ядром будет по-прежнему страдать от очень низкой производительности, если одна задача решит использовать как можно больше ЦП, так как O / S даст этой задаче столько процессорного времени, сколько можно сэкономить все еще позволяя запускать задачи с более высоким приоритетом, заставляя процессор работать до 100% Если SQL Server работает во время загрузки ЦП на 100%, объем ЦП SQL Server будет настолько уменьшен, что станет очень заметным. В приведенных выше сценариях я изложил, я нескажем, машина (или даже SQL Server) полностью «остановится» или «умрет»; это было бы просто неверно. Тем не менее, машина может стать настолько занятой, что для всех целей машина станет непригодной для использования. Добавление второго ядра, хотя и не является панацеей, снижает вероятность того, что машина станет полностью безразличной. Каждое дополнительное ядро означает, что другой поток может работать на 100% ЦП, не приводя к невозможности использования компьютера.