Jeg har en HP Proliant dl740g2 server med 8xXeon cpu
Disse kan hyperthreade, og ses derfor som 16.
Mit problem er at SQL Server 2000 SP3 / Windows2003 SP1 ikke fordeler sit load ordentligt, jeg kører faktisk kun på den virtuelle kerne. Er der behov ser det dog ud til at den kan bruge sine andre tråde nogle gode forslag.?
Hyperthreading er IKKE en fordel for en database server - tværtimod så sænker det performance når boksen belastes!
Derudover - sql server styrer selv sin trådschedulering. Reelt set gør den det at den allokerer en UMS scheduler til hver cpu. når en klient connecter bliver den hægtet på en UMS scheduler og den styrer så alle opgaver i en round robin. Men en connection forbliver på en og samme UMS til den de-connecter.
Når en opgave er tilstrækkelig stor bliver den så fordelt ud på flere cpuer - men den enkelte connection er stadig "låst" til en og samme UMS. Det er derfor ganske normalt at se pæne udsving i cpu belastningen.
Derudover hvis du har pillet ved processor-affinitet i sql serveren så gør det, at den faktisk ikke kan lave loadbalancing over cpu'erne - alle cpu'er skal være enabled i affinitetsvinduet.
Sidst men ikke mindst - en windows boks med flere cpuer benytter de enkelte cpuer til forskellige opgaver. cpu'en med højeste nummer klarer interupts fra første netkort, næsthøjeste cpu klarer netkort 2. Og så vidt jeg husker bruges cpu'en med laveste nummer til disk interupts.
du får så et svar - og lige en detalje mere; I dag siger man, at hyperthreading *kan* være en fordel såfremt de enkelte batche som sql serveren skal afvikle er små.
Men min erfaring siger stadig at man skal holde sig fra det :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.