Memory numa node not evenly distributed

sakuraime 2,351 Reputation points
2020-11-02T18:21:49.397+00:00

I have two numa node on my sql server on linux . But I found that in sys.dm_os_memory_clerks, and even dbcc memorystatus() not having numa node 1 memory information .

36799-memory.jpg

SQL Server | Other
{count} votes

2 answers

Sort by: Most helpful
  1. Shashank Singh 6,251 Reputation points
    2020-11-03T17:37:20.51+00:00

    As per your below image and output from sys.dm_os_memory_nodes

    37235-numa.png

    You do not have 2 NUMA nodes. The Node ID 64 will not be counted as NUMA node.

    EDIT: Answer to follow up question

    but I have 2 node_id on select * from sys.dm_os_nodes

    Sys.dm_os_nodes show you NUMA nodes created by SQLOS while sys.dm_os_memory_nodes shows that created of soft NUMA, done by engine. The structure of physical NUMA can be altered by soft numa. Also if you look BOL doc for sys.dm_os_memory_nodes it says

    Nodes are created per physical NUMA memory nodes. These might be different from the CPU nodes in sys.dm_os_nodes.

    Plus see the output you posted for DMV sys.dm_os_nodes. For node_id 0,1 they have same memory_node_id as 0.

    To further understand see SQL Server: Clarifying The NUMA Configuration Information, in this blog see section I have a non-NUMA system and SQL Server Still Shows NUMA - why?. This section has detailed answer to your question.

    To further confirm run sp_readerrorlog 0,1,'Node configuration: node'. It will return information like

    2011-11-09 12:38:01.38 Server Node configuration: node 0: CPU mask: 0x000000000000000f:1 Active CPU mask: 0x000000000000000f:1.
    2011-11-09 12:38:01.38 Server Node configuration: node 1: CPU mask: 0x000000000000000f:0 Active CPU mask: 0x000000000000000f:0.

    EX: Above output says system has 2 NUMA nodes.

    1 person found this answer helpful.

  2. Cris Zhan-MSFT 6,671 Reputation points
    2020-11-04T02:10:00.54+00:00

    Hi @sakuraime ,

    I also think that there is only one physical numa node in your system.

    According to the results by querying sys.dm_os_sys_info on your instance, the softnuma_configuration=1, this means the Automatic soft-NUMA was enabled on this instance. And the column numa_node_count : Specifies the number of numa nodes available on the system. This column includes physical numa nodes as well as soft numa nodes.

    Each socket is represented, usually, as a single NUMA node. With SQL Server 2016 (13.x), whenever the SQL Server Database Engine detects more than eight physical cores per NUMA node or socket at startup, soft-NUMA nodes are created automatically by default.
    More details please refer to the MS doc : Soft-NUMA (SQL Server).


    If the answer is helpful, please click "Accept Answer" and upvote it.
    Hot issues in October—Users always get connection timeout problem when using multi subnet AG via listener. Especially after failover to another subnet


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.