• 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. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    1. InnoDB 버퍼 풀 구성
    2. InnoDB 상호 배타적 잠금 및 읽기 / 쓰기 잠금 구현
    3. InnoDB를위한 메모리 할당 구성
    4. InnoDB 변경 버퍼링 구성
    5. InnoDB의 스레드 병렬성 구성
    6. InnoDB 백그라운드 I/O 스레드 수 구성
    7. 그룹 커밋
    8. InnoDB 마스터 스레드의 I/O 속도의 구성
    9. InnoDB 스핀 루프에서 PAUSE 명령 사용
    10. 스핀 록 폴링 구성
    11. InnoDB의 MySQL 성능 스키마와 통합
    12. 다중 롤백 세그먼트에 의한 확장성 향상
    13. InnoDB 퍼지 스케줄링 구성
    14. InnoDB의 읽기 전용 트랜잭션 최적화
    15. 체크섬의 고속화를위한 CRC32 체크섬 알고리즘의 사용
    16. 옵티 마이저 통계
    17. InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. 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 새로운 기능

14.13.3 InnoDB를위한 메모리 할당 구성

InnoDB 가 개발되었을 때 운영 체제와 함께 제공되는 메모리 할당과 런타임 라이브러리는 종종 성능 및 확장 성이 부족했습니다. 그 시점에서는 멀티 코어 CPU 용으로 튜닝 된 메모리 할당 라이브러리가 존재하지 않았습니다. 따라서 InnoDB 는 mem 서브 시스템 내에 메모리 할당을 구현했습니다. 이 할당은 하나의 상호 배타 락에 의해 보호되고 있으며, 이것이 병목 현상 이 발생할 수 있습니다. InnoDB 는 또한 시스템 할당 ( malloc 과 free )의 주위에뿐만 아니라 하나의 상호 배타 락에 의해 보호되는 래퍼 인터페이스를 구현하고 있습니다.

오늘 멀티 코어 시스템이 더 광범위하게 사용 가능 해짐에 따라, 그리고 운영 체제가 성숙됨에 따라 운영 체제와 함께 제공되는 메모리 할당에 대해서 대폭적인 개선이 이루어 왔습니다. 새로운 메모리 할당은 이전보다 성능이 향상되고 또한 더 확장되었습니다. 주요 고성능 메모리 할당은 Hoard , libumem , mtmalloc , ptmalloc , tbbmalloc 및 TCMalloc 가 포함되어 있습니다. 대부분의 워크로드는 특히 메모리를 할당하고 해제가 빈번하게 행해지 (다중 테이블 조인과 같은) 경우 내부 InnoDB 고유의 메모리 할당이 아니라 더 높은 조정 된 메모리 할당을 사용하면 장점이 있습니다 .

InnoDB 가 자신의 메모리 할당 또는 운영 체제의 할당 중 어느 것을 사용할지, MySQL 옵션 파일 ( my.cnf 또는 my.ini )의 시스템 구성 매개 변수 innodb_use_sys_malloc 값을 설정하여 제어 할 수 있습니다. ON 또는 1 (디폴트)로 설정되어있는 경우, InnoDB 는 메모리 풀을 스스로 관리하는 것이 아니라 기반이되는 시스템 malloc 과 free 함수를 사용합니다. 이 매개 변수는 동적 아니라 시스템이 부팅 된 경우에만 사용할 수 있습니다. InnoDB 메모리 할당을 계속 사용하려면 innodb_use_sys_malloc 를 0 으로 설정합니다.

InnoDB 메모리 할당이 해제 된 경우, InnoDB 는 매개 변수 innodb_additional_mem_pool_size 값을 무시합니다. InnoDB 메모리 할당은 시스템 메모리 할당에 대체하지 않고 할당 요청을 충족하기 위해 추가 메모리 풀을 사용합니다. InnoDB 메모리 할당이 해제 된 경우 이러한 할당 요청은 시스템 메모리 할당에 의해 채워집니다.

동적 링크를 사용하는 Unix 계열 시스템에서는 메모리 할당의 대체 환경 변수 LD_PRELOAD 또는 LD_LIBRARY_PATH 가 그 할당을 구현하는 동적 라이브러리를 가리 키도록하면 간단한 조작으로 끝날 수 있습니다. 다른 시스템에서는 어느 정도의 재 연결이 필요할 수 있습니다. 선택한 메모리 할당 라이브러리의 문서를 참조하십시오.

시스템 메모리 할당이 사용되는 ( innodb_use_sys_malloc 이 ON 인 경우) InnoDB 는 모든 메모리 사용을 추적 할 수 없기 때문에 SHOW ENGINE INNODB STATUS 명령의 출력에서의 "BUFFER POOL AND MEMORY"의 "Total memory allocated "는 버퍼 풀 통계 만 포함됩니다. mem 서브 시스템 또는 ut_malloc 를 사용하여 할당 된 메모리는 제외됩니다.

참고

innodb_use_sys_malloc 과 innodb_additional_mem_pool_size 는 MySQL 5.6.3에서는 사용되지 않으며 이후 릴리스에서 제거 될 예정입니다.

InnoDB 의 메모리 사용의 성능에 미치는 영향 대한 자세한 내용은 섹션 8.9 "버퍼링과 캐시" 를 참조하십시오.

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