none
NUMA

    Question

  • I have two Servers.

    One has one processor and 6 slots occupied by Ram(set up and preconfigured by Manufacturer)

    Another is on Two processors and 6 individual slots with 3 bars of ram on each, total of ( A1-A6 and B1-B6 ).

    My question is although these servers came preassembled, and i have been told that the different A and B stols pertain to the different CPU's,

    1.can we say that they are on NUMA?

    2.How can we verify if a certain server is on NUMA? and if so how can we find out which type of NUMA it is?

    3.Is NUMA configurable ?

    4.Is Soft-NUMA, Interleaved-NUMA a hardware or software feature?

    5.I believe we can have NUMA hardware enabled to behave as SMP.

    5. Does NUMA look at the PHYSICAL Processor or the Number of Cores involved or the LOGICAL CORES due to HyperThreading?

    Please help with details/BOOK REFERENCES.

    Thanks.

     

    Friday, October 22, 2010 11:02 AM

Answers

All replies

  • What are the specific hardware components in use?  You can find out if the machine is using NUMA by looking at the Startup ErrorLog, or by querying sys.dm_os_nodes:

    select * 
    from sys.dm_os_nodes
    where node_state_desc = 'ONLINE'

    The hardware is what matters more than anything.  NUMA is usually configurable in the BIOS and can be disabled on most systems.  If you only have 2 NUMA nodes, it may be ideal to disable hard NUMA if you have memory locality issues because you only have a 50/50 chance of having it be local.

    A good book that covers this is Professional SQL Server 2008 Internals and Troubleshooting, which I helped coauthor.

     


    Jonathan Kehayias
    http://sqlblog.com/blogs/jonathan_kehayias/
    http://www.twitter.com/SQLSarg
    http://www.sqlclr.net/
    Please click the Mark as Answer button if a post solves your problem!
    Friday, October 22, 2010 2:15 PM
    Moderator
  • Here is the result Jonathan.

    Server 1

    node_id node_state_desc memory_object_address memory_clerk_address io_completion_worker_address memory_node_id cpu_affinity_mask online_scheduler_count idle_scheduler_count active_worker_count avg_load_balance timer_task_affinity_mask permanent_task_affinity_mask resource_monitor_state
    0 ONLINE 0x0000000000336080 0x0000000000334248 0x0000000000DBA1A0 0 255 8 8 26 4 3 193 1

    Server 2

    node_id node_state_desc memory_object_address memory_clerk_address io_completion_worker_address memory_node_id cpu_affinity_mask online_scheduler_count idle_scheduler_count active_worker_count avg_load_balance timer_task_affinity_mask permanent_task_affinity_mask resource_monitor_state
    0 ONLINE 0x0000000000440080 0x00000000003F4248 0x000000000073E1A0 1 65280 8 8 17 2 20480 61952 1
    1 ONLINE 0x00000000003F6080 0x00000000003F4578 0x0000000004CDA1A0 0 255 8 8 16 2 0 254 1

    Would you be so kind to explain what these values mean and indicate.

    I have your book and thank you so much for writing it!

    Saturday, October 23, 2010 4:43 PM