Huge Page
HugePage 내용
구성 방법
-
적정한 HugePage 값 계산
# (InnoDB Buffer 사이즈 + 10% 여유) / HugePage 사이즈 SELECT (@@INNODB_BUFFER_POOL_SIZE + (@@INNODB_BUFFER_POOL_SIZE * 0.1 )) / 1024 / 1024 / 2 AS "Recommended setting: vm.nr_hugepages"; /* +--------------------------------------+ | Recommended setting: vm.nr_hugepages | +--------------------------------------+ | XXX | +--------------------------------------+ */ -
계산한 값으로 HugePages 변경 및 커널 파라미터 변경
-
memlock 변경
-
MySQL 설정 변경
-
변경한 커널 파라미터 적용 및 MySQL 재기동
-
MySQL에서 사용하고 있는 HugePages 수 확인
# pl 파일 생성 vi usedhugepages.pl # 추가할 내용 sub UsedHugePages { my $pid=$_[0]; open (NUMAMAPS, "/proc/$pid/numa_maps") || die "can't open numa_maps"; my $HUGEPAGECOUNT=0; while (<NUMAMAPS>) { if (/huge.*dirty=(\d+)/) { $HUGEPAGECOUNT+=$1; } } close NUMAMAPS; return ($HUGEPAGECOUNT); } printf "%d huge pages\n", UsedHugePages($ARGV[0]); # mysql pid ps -ef | grep mysql | grep -v root # pl 파일 샐행 perl usedhugepages.pl mysql_pid #XXX huge pages