Percona5.6增加了对NUMA架构的支持

目前主流服务器都支持NUMA架构,我们可以通过命令numactl --hardware查看,如图:

wKiom1MNyfqgoz6yAAEFc8jxlwA801.jpg

在这里,NUMA架构把CPU逻辑上划分为两个节点node0和node1,每个节点上分配4核CPU、16G内存。

NUMA默认策略:内存优先分配给node0,当InnoDB_Buffer_Pool设置为22G时,node0使用完本地内存,此时就应该使用node1节点的内存,但它宁可使用SWAP,也不会选择node1,所以这里就会出现剩余内存还有很多,但却使用到了SWAP,导致数据库性能出现抖动。


针对这个问题,Percona做了改善,只需在my.cnf里,加上

[mysqld_safe]
numa_interleave = 1

调整策略为交叉分配模式,使每个节点都承载均衡的内存分配。


如果你的版本是官方的,启动MySQL时用命令:

numactl --interleave=all mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

wKioL1MNznyx2au7AAFeGokh3LQ730.jpg


参考手册:

wKiom1MNzsiAa8MMAAFUdtSzv48838.jpg

http://www.percona.com/doc/percona-server/5.6/performance/innodb_numa_support.html




你可能感兴趣的:(percona,numa)