월: 2015 10월

MySQL 5.6.27의 innodb_numa_interleave 변수 추가

https://xdhyix.wordpress.com/2015/07/20/numa-swap-insanity-mysql/
에서 언급되었던 NUMA 핸들링에 대한 패치가 merge 되었음

mysqld_safe 스크립트 에서 /usr/bin/numactl –interleave all 로 프리로드 했었으나
추가된 innodb_numa_interleave 변수를 ON 으로 변경 시 에러로그에 MPOL_INTERLEAVE 후 MPOL_DEFAULT 로 변경하는 로그가 찍힘

2015-10-20 11:24:08 24314 [Note] InnoDB: Initializing buffer pool, size = 38.0G
2015-10-20 11:24:08 24314 [Note] InnoDB: Setting NUMA memory policy to MPOL_INTERLEAVE
2015-10-20 11:24:10 24314 [Note] InnoDB: Setting NUMA memory policy to MPOL_DEFAULT
2015-10-20 11:24:10 24314 [Note] InnoDB: Completed initialization of buffer pool

/usr/bin/numactl –interleave all 프리로드 스크립트를 삭제하고 새 변수를 사용하여 확인

# ./numa-maps-summary.pl < /proc/24314/numa_maps
N0 : 661167 ( 2.52 GB)
N1 : 566951 ( 2.16 GB)
active : 396 ( 0.00 GB)
anon : 1226437 ( 4.68 GB)
dirty : 1226437 ( 4.68 GB)
kernelpagesize_kB: 312 ( 0.00 GB)
mapmax : 261 ( 0.00 GB)
mapped : 1796 ( 0.01 GB)

# ./numactl –hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 8 9 10 11
node 0 size: 24532 MB
node 0 free: 21129 MB
node 1 cpus: 4 5 6 7 12 13 14 15
node 1 size: 24576 MB
node 1 free: 21762 MB
node distances:
node 0 1
0: 10 21
1: 21 10