14.13.8 InnoDB 마스터 스레드의 I / O 속도의 구성
InnoDB에서의 마스터 스레드 는 다양한 작업을 백그라운드에서 실행하는 스레드입니다. 이러한 작업은 대부분 더티 페이지의 버퍼 풀에서 플래시 또는 변경의 삽입 버퍼에서 적절한 보조 인덱스에 쓰기 등의 I / O 관련 작업입니다. 마스터 스레드는 이러한 작업을 서버의 정상적인 작동에 악영향을주지 않는 방식으로 실행하려고합니다. 즉, 사용 가능한 I / O 대역폭을 추정하고, 자신의 활동을 조정하고이 공간을 이용하려고합니다. 기존보다, InnoDB는 서버의 총 I / O 용량으로 100 IOPs (초당 입 / 출력 작업 수)의 하드 코드 된 값을 사용하여 왔습니다.
매개 변수 innodb_io_capacity
은 InnoDB에서 사용할 수있는 전체 I / O 용량을 나타냅니다. 이 매개 변수는 거의 시스템이 초당 수행 할 수있는 I / O 작업의 수를 설정하도록하십시오. 이 값은 시스템 구성에 따라 다릅니다. innodb_io_capacity
이 설정되어있는 경우 마스터 스레드에서 설정된 값에 따라 백그라운드 작업에 사용할 수있는 I / O 대역폭을 추정합니다. 이 값을 100
로 설정하면 기존의 동작으로 돌아갑니다.
innodb_io_capacity
값은 100 이상의 숫자 값으로 설정할 수 있습니다. 기본값은 200
이며, 표준 최신 I / O 장치의 성능이 MySQL의 초기 시절보다 향상하고있는 것을 반영하고 있습니다. 일반적으로 소비자 수준의 저장 장치 (최대 7200 RPM 하드 드라이브 등)는 이전의 디폴트 인 100 부근의 값이 적합합니다. 빠른 하드 드라이브, RAID 구성 및 SSD 값을 크게하면 장점이 있습니다.
innodb_io_capacity
설정은 모든 버퍼 풀 인스턴스에 대한 총 제한입니다. 더티 페이지가 플래시 될 때 innodb_io_capacity
제한 버퍼 풀 인스턴스간에 균등하게 분할됩니다. 자세한 내용은 innodb_io_capacity
시스템 변수의 설명을 참조하십시오.
이 매개 변수의 값은 MySQL 옵션 파일 ( my.cnf
또는 my.ini
)로 설정하거나 SET GLOBAL
명령 (여기에는 SUPER
권한이 있어야합니다)에서 동적으로 변경할 수 있습니다.
이전 InnoDB
마스터 스레드는 필요한 제거 작업을 모두 수행했습니다. MySQL 5.6.5 이후에서는 이러한 I / O 작업은 다른 백그라운드 스레드로 전환되어 그 스레드 수는 innodb_purge_threads
구성 옵션에 의해 제어됩니다.
InnoDB의 I / O 성능 자세한 내용은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.