Qualsiasi processo non SQL Server che consuma CPU può rendere completamente inutilizzabile l'intero SQL Server.
Ad esempio, Windows Update interromperà SQL Server durante la decompressione degli assembly .Net.
Qualsiasi processo antivirus, anche se è configurato per escludere file e cartelle di dati di SQL Server, può causare la mancata risposta di SQL Server durante la scansione dei file e la decompressione dei file di definizione dei virus aggiornati.
Se è installato un software di gestione, come IBM Tivoli Server Monitor, e decide di utilizzare il 100% di un core, probabilmente non sarà possibile fare altro che spegnere a freddo la macchina. Non chiedermi perché lo sto sollevando.
Potrei continuare, ma basti dire che qualsiasi server con un singolo core sta semplicemente chiedendo problemi con le prestazioni e la gestibilità. Verifica che qualsiasi computer con un singolo core dovrebbe essere considerato inutilizzabile oggi. Diamine, il mio telefono ha 8 core.
Mentre ci sei, convinci il ragazzo della virtualizzazione a dare a ogni SQL Server una ragionevole riserva di memoria che assicurerà che la memoria di SQL Server non venga pagata dalla memoria principale degli host su disco.
Per server SQL seri ospitati da VMware, è necessario configurare VMware in base alla Guida alle migliori pratiche di Architecting SQL Server su VMware .
Si riduce davvero a una VM single-core in grado di eseguire solo un singolo thread in qualsiasi momento. La virtualizzazione non è un proiettile d'argento per quella situazione single-core-per-thread.
I punti precedenti tengono conto del fatto che Windows NT (la base di codice del 1993 su cui sono basate tutte le versioni moderne di Windows) utilizza il multitasking preventivo. Il multitasking preventivo consente all'O / S di imporre il multitasking forzando il cambio di contesto a orari regolari. Anche con il multi-tasking preventivo, un server con un singolo core subirà comunque prestazioni molto scarse se una singola attività decide di utilizzare la maggior quantità di CPU possibile, poiché l'O / S fornirà a tale attività il tempo di CPU che può essere risparmiato pur consentendo l'esecuzione di attività con priorità più elevata, forzando la CPU al 100%. Se SQL Server è in esecuzione nel momento in cui la CPU passa al 100%, la quantità di CPU di SQL Server sarà ridotta al punto da diventare molto evidente. Negli scenari di cui sopra ho descritto, l'ho fatto nonad esempio, la macchina (o anche SQL Server) si "fermerà" completamente o "morirà"; sarebbe semplicemente falso. Tuttavia, la macchina può diventare così occupata che a tutti gli effetti la macchina diventa inutilizzabile. L'aggiunta di un secondo nucleo, sebbene non sia certamente una panacea, riduce la probabilità che la macchina non risponda completamente. Ogni core aggiuntivo significa che un altro thread può essere eseguito al 100% della CPU senza rendere la macchina inutilizzabile.