• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 1. 최적화 개요
    2. SQL문 최적화
    3. 최적화 및 인덱스
    4. 데이터베이스 구조의 최적화
    5. InnoDB 테이블의 최적화
    6. MyISAM 테이블의 최적화
    7. MEMORY 테이블 최적화
    8. 쿼리 실행 계획의 이해
    9. 버퍼링과 캐시
    10. 잠금 작업의 최적화
    11. MySQL 서버의 최적화
    1. 시스템 요소 및 스타트 업 파라미터의 튜닝
    2. 서버 파라미터의 튜닝
    3. 디스크 I / O 최적화
    4. 메모리 사용 최적화
    1. MySQL의 메모리 사용 방법
    2. 대형 페이지 지원 활성화
    5. 네트워크 사용의 최적화
    6. 스레드 풀 플러그인
    12. 성능 측정
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

8.11.4.2 대형 페이지 지원 활성화

하드웨어 또는 운영 시스템의 아키텍처에 따라 기본 (일반적으로 4K 바이트)보다 큰 메모리 페이지를 지원합니다. 이 지원의 실제 구현은 기반이되는 하드웨어와 운영 체제에 따라 다릅니다. 대량의 메모리 액세스하는 응용 프로그램의 경우 큰 페이지를 사용하여 변환 룩 어 사이드 버퍼 (TLB; Translation Lookaside Buffer)의 실수가 감소하여 성능이 향상 될 수 있습니다.

MySQL에서 InnoDB에서 대형 페이지를 사용하여 버퍼 풀 및 추가 메모리 풀에 메모리를 할당 할 수 있습니다.

MySQL의 표준 대형 페이지 사용에 지원되는 최대 크기 인 4M 바이트까지의 사용이 시도됩니다. Solaris에서는 '초대형 페이지'기능 256M 바이트의 페이지 사용이 가능합니다. 이 기능은 최신 SPARC 플랫폼에서 사용할 수 있습니다. 이것은 --super-large-pages 또는 --skip-super-large-pages 옵션을 사용하여 활성화하거나 비활성화 할 수 있습니다.

MySQL은 대형 페이지 지원 Linux 구현 (Linux에서는 HugeTLB라고도 함)도 지원합니다.

Linux에서 대형 페이지를 사용하기 전에 커널에서이를 지원할 수 있도록해야, HugeTLB 메모리 풀을 구성해야합니다. 참고로 HugeTBL API는 Linux 소스의 Documentation/vm/hugetlbpage.txt 파일에 설명되어 있습니다.

Red Hat Enterprise Linux 등의 일부 최신 시스템의 커널에서는 대형 페이지 기능이 기본적으로 활성화되어있는 것 같습니다. 사용중인 커널에 이것이 적용되는지 여부를 확인하려면 다음 명령을 사용하여 "huge"를 포함 출력 행을 찾습니다.

 shell> cat /proc/meminfo | grep -i huge
 HugePages_Total : 0
 HugePages_Free : 0
 HugePages_Rsvd : 0
 HugePages_Surp : 0
 Hugepagesize : 4096 kB

비어 있지 않은 명령 출력은 대형 페이지 지원이 있는지를 나타냅니다 만, 0 값은 사용하도록 구성된 페이지가 없음을 나타냅니다.

대형 페이지를 지원하도록 커널을 재구성 할 필요가있는 경우, 지침 hugetlbpage.txt 파일을 참조하십시오.

Linux 커널에서 대형 페이지 지원이 활성화되어 있다고 가정하고 그것을 다음 명령을 사용하여 MySQL에서 사용하도록 구성합니다. 일반적으로 시스템이 부팅 할 때마다 명령이 실행되도록 시스템 부팅 중에 실행되는 rc 파일 또는 동등한 시작 파일에 이러한을 켭니다. 명령은 부팅 초기의 MySQL 서버를 시작하기 전에 실행되어야합니다. 시스템에 적절한 같이 할당의 수치와 그룹 번호를 변경하십시오.

 # Set the number of pages to be used.
 # Each page is normally 2MB, so a value of 20 = 40MB.
 # This command actually allocates memory, so this much
 # memory must be available.
 echo 20> / proc / sys / vm / nr_hugepages

 # Set the group number that is permitted to access this
 # memory (102 in this case) The mysql user must be a
 # member of this group.
 echo 102> / proc / sys / vm / hugetlb_shm_group

 # Increase the amount of shmem permitted per segment
 # (12G in this case).
 echo 1560281088> / proc / sys / kernel / shmmax

 # Increase total amount of shared memory. The value
 # is the number of pages. At 4KB / page 4194304 = 16GB.
 echo 4194304> / proc / sys / kernel / shmall

MySQL에서 사용하는 경우 일반적 shmmax 값을 shmall 값에 가까워 야하고 싶다고 생각합니다.

라지 페이지의 구성을 확인하려면 위에서 설명한대로 다시 /proc/meminfo 를 확인합니다. 이제 0이 아닌 값이 표시되는 것입니다.

 shell> cat /proc/meminfo | grep -i huge
 HugePages_Total : 20
 HugePages_Free : 20
 HugePages_Rsvd : 0
 HugePages_Surp : 0
 Hugepagesize : 4096 kB

hugetlb_shm_group 을 사용하기위한 마지막 단계는 mysql 사용자에게 memlock 제한으로 "unlimited"값을 지정하는 것입니다. 이렇게하려면 /etc/security/limits.conf 을 편집하거나 mysqld_safe 스크립트에 다음 명령을 추가합니다.

 ulimit -l unlimited

ulimit 명령을 mysqld_safe에 추가하면 mysql 사용자로 전환하기 전에 root 사용자 memlock 제한이 unlimited 로 설정됩니다. (이것은 mysqld_safe가 root 에 의해 시작 된 것으로 가정합니다.)

MySQL의 대형 페이지 지원은 기본적으로 비활성화되어 있습니다. 그것을 사용하려면 서버를 --large-pages 옵션에서 시작합니다. 예를 들어, 서버의 my.cnf 파일에 다음 줄을 사용할 수 있습니다.

 [mysqld]
 large-pages

이 옵션을 사용하면 InnoDB 는 버퍼 풀 및 추가 메모리 풀에 자동으로 대형 페이지를 사용합니다. InnoDB 가이를 실행할 수없는 경우 기존의 메모리 사용에 돌아가서 오류 로그에 경고를 기록합니다 : Warning : Using conventional memory pool

대형 페이지를 사용하고 있는지 확인하려면 다시 /proc/meminfo 를 확인합니다.

 shell> cat /proc/meminfo | grep -i huge
 HugePages_Total : 20
 HugePages_Free : 20
 HugePages_Rsvd : 2
 HugePages_Surp : 0
 Hugepagesize : 4096 kB


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved