• 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 최적화
    1. 심볼릭 링크 사용
    4. 메모리 사용 최적화
    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.3 디스크 I / O 최적화

  • 디스크 검색 성능의 주요 병목 현상입니다. 이 문제는 데이터의 양이 효과적인 캐시가 실행 불능이 될 정도로 큰지기 시작하면 분명합니다. 다소 무작위로 데이터에 액세스하는 큰 데이터베이스의 경우, 읽기에 최소 1 회 쓰기에는 두 디스크 시크가 확실히 필요합니다. 이 문제를 최소화하려면 적은 탐색 횟수로 디스크를 사용합니다.

  • 다양한 디스크에 파일을 심볼릭 링크하거나 디스크 스트라이핑을 행하고 사용 가능한 디스크 스핀들 수를 늘립니다 (및 그것을 통해 탐색 오버 헤드를 줄일 수 있습니다).

    • 심볼릭 링크 사용

      이것은 MyISAM 테이블의 경우, 데이터 디렉토리의 정상적인 위치에서 다른 디스크에 인덱스 파일과 데이터 파일의 심볼릭 링크를 생성하면 (스트라이핑되는 경우도있다)을 의미합니다. 디스크가 다른 목적으로도 사용되지 않은 것으로,이를 통해 검색 및 읽기 시간이 모두 개선됩니다. “Optimizing InnoDB Disk I/O” 을 참조하십시오.

    • 스트라이핑

      스트라이핑은 여러 디스크가 첫 번째 블록을 첫 번째 디스크에 두 번째 블록을 두 번째 디스크에 N 번째 블록 ( N MOD number_of_disks ) 번째 디스크와 같이 배치하는 것이 의미합니다. 즉, 일반적으로 데이터 크기가 스트라이프 크기보다 작은 (또는 완전히 일치하는) 경우 성능이 크게 향상됩니다. 스트라이프는 운영 체제와 스트라이프 크기에 크게 의존하기 때문에 다양한 스트라이프 크기 어플리케이션 벤치 마크를 수행하십시오. 섹션 8.12.3 "자체 벤치 마크의 사용" 을 참조하십시오.

      스트라이프 속도의 차이는 매개 변수에 크게 의존합니다. 스트라이핑 파라미터의 설정 방법과 디스크 수에 따라 현격 한 차이의 차이가 측정 될 수 있습니다. 랜덤 액세스에 대한 최적화 또는 순차 액세스에 대한 최적화를 선택해야합니다.

  • 신뢰성을 위해 RAID 1 + 0 (스트라이핑 및 미러링)을 사용하고자하는 경우가 있습니다 만,이 경우 N 개의 드라이브의 데이터를 유지하기 위해 2 × N 개의 드라이브가 필요합니다. 이것은 따라서 자금이있는 경우에 최적의 옵션이 될 수 있습니다. 그러나 그것을 효율적으로 처리하기 위해 어떤 볼륨 관리 소프트웨어에 투자 할 필요가있을 수도 있습니다.

  • 적절한 옵션은 특정 유형의 데이터가 얼마나 중요한지에 따라 RAID 레벨을 바꿀 것입니다. 예를 들어, 재생성이 가능한 약간 중요한 데이터는 RAID 0 디스크에 저장되지만 호스트 및 로그 등의 정말 중요한 데이터는 RAID 0 + 1 또는 RAID N 디스크에 저장합니다. RAID N 패리티 비트의 업데이트에 필요한 시간에 대한 많은 기록이있는 경우에 문제가 될 수 있습니다.

  • Linux는 hdparm 을 사용하여 디스크의 인터페이스를 구성하여 성능을 크게 향상시킬 수 있습니다. (부하시 최대 100 %도 드물지 않습니다.) 다음 hdparm 옵션은 MySQL 및 아마 다른 많은 응용 프로그램에 매우 적합해야합니다.

     hdparm -m 16 -d 1
    

    이 명령을 사용했을 때의 성능과 안정성은 하드웨어에 의존하기 때문에 hdparm 의 사용 후 시스템을 철저하게 테스트하는 것이 좋습니다. 자세한 내용은 hdparm 매뉴얼 페이지를 참조하십시오. hdparm 을 적절하게 사용하지 않으면 파일 시스템 손상이 발생할 수 있기 때문에 실험하기 전에 모든 것을 백업하십시오.

  • 데이터베이스가 사용하는 파일 시스템의 매개 변수를 설정할 수 있습니다.

    파일에 마지막으로 액세스 된시기를 알 필요가 없다 (실제로 데이터베이스 서버에서 도움이되지 않는다) 경우 -o noatime 옵션을 사용하여 파일 시스템을 마운트 할 수 있습니다. 그것은 파일 시스템의 i 노드의 마지막 액세스 시간에 업데이트를 생략하기 위해 일부 디스크 검색이 불가피합니다.

    많은 운영 체제에서 -o async 옵션을 사용하여 파일 시스템을 마운트하여 파일 시스템이 비동기 적으로 업데이트되도록 설정할 수 있습니다. 컴퓨터가 비교적 안정되어 있다면 이는 그만큼 신뢰성을 희생하지 않고도 성능을 향상시킬 것입니다. (Linux에서는이 플래그가 기본적으로 설정되어 있습니다.)


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