Dopo aver installato SQL Server Enterprise 2012 con il modello di licenza Server + Cal, su un computer con 2 processori ciascuno con 16 core (e nessun hyperthreading coinvolto) e messo il server sotto carico estremamente pesante, i 16 core sul primo processore erano molto sottoutilizzati, il i primi 4 core sulla seconda CPU sono stati ampiamente utilizzati e gli ultimi 12 core non sono stati utilizzati affatto (a causa del limite di 20 core per questa versione del server sql). L'utilizzo totale della CPU è stato del 25% circa. Sfortunatamente, il server ha sofferto di prestazioni estremamente scarse, anche se se le attività fossero state distribuite uniformemente tra i 20 core non sarebbe stato altrettanto negativo.
Il server Windows era in esecuzione su un'immagine virtuale VMWare in ESX Server, ma tutta la CPU era allocata al server Windows.
Abbiamo provato a modificare le impostazioni di affinità (ad es. Allocando la maggior parte dei core alla CPU e gli altri all'I / O), ma ciò non ha aiutato a risolvere i problemi di prestazioni.
L'aggiornamento dell'edizione del prodotto a SQL Server Enterprise Core 2012 non solo ha consentito a SQL Server di utilizzare i 12 core precedentemente non utilizzati sul secondo processore, ma ha anche portato a una distribuzione molto più uniforme delle attività su tutti i processori. Per superare l'arretrato di richieste, l'utilizzo della cpU è balzato al 90% circa, per poi ridursi al 33% circa una volta raggiunto, ma le prestazioni sono migliorate notevolmente dal momento che non siamo riusciti a passare alla versione appena aggiornata e i problemi di prestazioni sono scomparsi.
Mi chiedevo se qualcuno sapesse cosa potrebbe causare una distribuzione non uniforme del carico da parte di SQL Server, basandosi quasi esclusivamente sui primi 4 core del secondo processore con 12 core inattivi e assegnando solo alcune attività a ciascuno dei 16 core sul primo processore. Inoltre, esiste un modo per distribuire il carico in modo più uniforme tra i 20 core utilizzati senza l'aggiornamento dell'edizione del prodotto?
Il rovescio della medaglia di questa domanda è che cosa ha fatto l'aggiornamento del prodotto che ha fatto sì che SQL Server iniziasse a distribuire uniformemente il carico su tutti i core riconosciuti?
Grazie a qualsiasi intuizione per rispondere a queste domande e / o collegamenti che potrebbero aiutarmi a capire meglio come dare un senso a ciò che stava accadendo.