Hyperthreading on 2 cpu vs 4 cpu with SQL STD

  • Anyone have experience with HTT on a 2-way box vs no HTT on a 4-way box with SQL2K Std ?

    Seems like i cannot get HTT on a 4-way with SQL2K Std, will have to get SQL2K Enterprise

    Comments appreciated ...

    Table from MS' site

    -------------------------------

    SQL Server 2000 Product1-way2-way 4-way

    PhysicalLogicalPhysicalLogicalPhysicalLogical

    SQL Server 2000 SE SP1 and SP2122444

    SQL Server 2000 EE SP1 and SP2122448

    8-way16-way 32-way

    PhysicalLogicalPhysicalLogicalPhysicalLogical

    SQL Server 2000 SE SP1 and SP2n/an/an/an/an/an/a

    SQL Server 2000 EE SP1 and SP281616323232

  • Windows 2K and SQL 2K do not understand hyperthreadind. To them it looks like extra CPUs exist, and since Std has a 4 CPU limit, that is why you cannot hyperthread.

    We recently moved from a single here (at SQL Server Central.com) to a dual hyperthreading machine and it runs great, but it runs the web server as well and we didn't do great benchmarking. It was a HUGE uprgade, so hard to say. At work, informally, I heard some of the JD Edwards benchmarks were slower with hyperthreading enabled for dedicated SQL machines. Can't verify that.

    This paper mentions SQL 7 isn't supporting this (http://www.microsoft.com/sql/howtobuy/SQLonHTT.doc)

    Mentions perf issues:http://www.sqlmag.com/Forums/messageview.cfm?catid=5&threadid=14696

    Steve Jones

    sjones@sqlservercentral.com

    http://www.sqlservercentral.com/columnists/sjones

    http://www.dkranch.net

  • Correct the hardware shows an additional CPU per hyperthreading enabled CPU. If you are having issues you can usually turn hyperthreading off in the bios of your server until you upgrade your version of win2k and sql to use more than 4 cpus so SQL won't pick a virtual processor over a real one to spawn multiple threads.

    Wes

  • If the machine has the up-to-date BIOS design (according to Intel specs.) then my understanding is that the CPU's will enumerate as follows (on a 4 way physical machine):

    real CPU #1, virtual CPU #1

    real CPU #2, virtual CPU #1

    real CPU #3, virtual CPU #1

    real CPU #4, virtual CPU #1

    real CPU #1, virtual CPU #2

    real CPU #2, virtual CPU #2

    real CPU #3, virtual CPU #2

    real CPU #4, virtual CPU #2

    Since Windows 2K Server can use 2 cpus, Advanced Server can use 4, and Datacenter can use 8, you machine will:

    1, use two separate physical cpus for Windows 2000 Server (two will be idle);

    2, use all four separate physical cpus for Windows 2000 Advanced Server;

    3, use all eight virtual cpus for Windows 2000 Datacenter Server.

    This is because a Xeon with hyperthreading has the throughput of around 1.5-1.8 cpus, and not 2 cpus.

  • Incorrect, the BIOS should enumerate:

    CPU #1, Logical #1

    CPU #2, Logical #1

    CPU #3, Logical #1

    CPU #4, Logical #1

    CPU #1, Logical #2

    CPU #2, Logical #2

    CPU #3, Logical #2

    CPU #4, Logical #2

    http://www.microsoft.com/windows2000/docs/hyperthreading.doc - page 2

    Steve Jones

    sjones@sqlservercentral.com

    http://www.sqlservercentral.com/columnists/sjones

    http://www.dkranch.net

  • Err... Isn't that exactly what I wrote (although I used the word "virtual" rather than "logical")?

  • quote:


    If the machine has the up-to-date BIOS design (according to Intel specs.) then my understanding is that the CPU's will enumerate as follows (on a 4 way physical machine):

    real CPU #1, virtual CPU #1

    real CPU #2, virtual CPU #1

    real CPU #3, virtual CPU #1

    real CPU #4, virtual CPU #1

    real CPU #1, virtual CPU #2

    real CPU #2, virtual CPU #2

    real CPU #3, virtual CPU #2

    real CPU #4, virtual CPU #2

    Since Windows 2K Server can use 2 cpus, Advanced Server can use 4, and Datacenter can use 8, you machine will:

    1, use two separate physical cpus for Windows 2000 Server (two will be idle);

    2, use all four separate physical cpus for Windows 2000 Advanced Server;

    3, use all eight virtual cpus for Windows 2000 Datacenter Server.

    This is because a Xeon with hyperthreading has the throughput of around 1.5-1.8 cpus, and not 2 cpus.

    Check your cpu per version. I believe W2K Standard supports 4 cpus and Advanced supports 8. Data center, I believe, goes up to 32 processors.


  • Sorry, you're right. For some reason I misread your post.

    But the last posts isn't right. Your W2K std will use all 4 CPUs, but the first virtual or logical processor on each. The 2nd one on each will not be used.

    Steve Jones

    sjones@sqlservercentral.com

    http://www.sqlservercentral.com/columnists/sjones

    http://www.dkranch.net

  • A little off topic from here but just curious that if anyone installed SQL STD on 4 way box with HT (i.e, 4 physical + 4 logical) on windows 2003 (not win2k).

    Based on what I read, it should use all 8 ways under win2k3.

    Thanks

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply