Skip to content
  • Annamalai Gurusami's avatar
    242fa2c9
    Bug #18871046 SET NUMA MEMPOLICY FOR OPTIMUM MYSQLD PERFORMANCE · 242fa2c9
    Annamalai Gurusami authored
    Problem:
    
    This is a contributed patch (bug#72811). The original contributor
    states that, "Historically, the suggested way to run MySQL on NUMA
    machines has been to run with "numactl --interleave=all" so that
    things like the InnoDB buffer pool are spread across all NUMA
    nodes." Currently InnoDB buffer pool is allocated without using
    NUMA features.
    
    Solution:
    
    Provide an option (--innodb_numa_interleave) to allocate InnoDB buffer
    pool using MPOL_INTERLEAVE memory policy of NUMA. What this patch does
    is the following:
    
    1.  If the option innodb_numa_interleave is enabled, then set the numa
        memory policy MPOL_INTERLEAVE for the mysqld process.
    2.  Allocate the buffer pool.
    3.  If the option innodb_numa_interleave is enabled, then set the numa
        memory policy back to MPOL_DEFAULT for the mysqld process.
    
    So all allocations that happen between 1 and 3 will be using the
    MPOL_INTERLEAVE memory policy.  This is a basic patch to make InnoDB
    numa aware.  More fine grained control is possible and will be taken
    up later.
    
    rb#7309 approved by allen.
    242fa2c9
    Bug #18871046 SET NUMA MEMPOLICY FOR OPTIMUM MYSQLD PERFORMANCE
    Annamalai Gurusami authored
    Problem:
    
    This is a contributed patch (bug#72811). The original contributor
    states that, "Historically, the suggested way to run MySQL on NUMA
    machines has been to run with "numactl --interleave=all" so that
    things like the InnoDB buffer pool are spread across all NUMA
    nodes." Currently InnoDB buffer pool is allocated without using
    NUMA features.
    
    Solution:
    
    Provide an option (--innodb_numa_interleave) to allocate InnoDB buffer
    pool using MPOL_INTERLEAVE memory policy of NUMA. What this patch does
    is the following:
    
    1.  If the option innodb_numa_interleave is enabled, then set the numa
        memory policy MPOL_INTERLEAVE for the mysqld process.
    2.  Allocate the buffer pool.
    3.  If the option innodb_numa_interleave is enabled, then set the numa
        memory policy back to MPOL_DEFAULT for the mysqld process.
    
    So all allocations that happen between 1 and 3 will be using the
    MPOL_INTERLEAVE memory policy.  This is a basic patch to make InnoDB
    numa aware.  More fine grained control is possible and will be taken
    up later.
    
    rb#7309 approved by allen.
Loading