Loading...
MySQL 9.5 Reference Manual 9.5의 17.8.5 Configuring the Number of Background InnoDB I/O Threads의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
InnoDB는 다양한 유형의 I/O 요청을 처리하기 위해 백그라운드 스레드를 사용합니다. 데이터 페이지에 대한 읽기 및 쓰기 I/O를 처리하는 백그라운드 스레드의 개수는 innodb_read_io_threads 및 innodb_write_io_threads 구성 파라미터를 사용하여 설정할 수 있습니다. 이 파라미터는 각각 읽기 및 쓰기 요청에 사용되는 백그라운드 스레드의 개수를 의미합니다.
이들은 지원되는 모든 플랫폼에서 유효합니다. 이 파라미터의 값은 MySQL 옵션 파일(my.cnf 또는 my.ini)에서 설정할 수 있으며, 값을 동적으로 변경할 수는 없습니다. innodb_read_io_threads의 기본값은 시스템에서 사용 가능한 논리 프로세서 수를 2로 나눈 값이며, 최소 기본값은 4입니다. innodb_write_io_threads의 기본값은 4입니다. 두 옵션 모두 허용되는 값은 1-64 범위입니다.
이 구성 옵션의 목적은 InnoDB를 하이엔드 시스템에서 더 확장 가능하게 만드는 것입니다. 각 백그라운드 스레드는 최대 256개의 대기 중인 I/O 요청을 처리할 수 있습니다. 백그라운드 I/O의 주요 소스는 리드 어헤드 요청입니다. InnoDB는 대부분의 백그라운드 스레드가 작업을 동일하게 분담하도록, 들어오는 요청의 부하를 균형 있게 맞추려고 시도합니다.
또한 InnoDB는 동일한 익스텐트로부터의 읽기 요청을 동일한 스레드에 할당하려고 시도하여, 요청을 병합할 수 있는 가능성을 높입니다. 하이엔드 I/O 서브시스템을 사용 중이고 SHOW ENGINE INNODB STATUS 출력에서 64 × innodb_read_io_threads보다 많은 대기 중인 읽기 요청이 보인다면, innodb_read_io_threads의 값을 늘려서 성능을 향상시킬 수 있습니다.
Linux 시스템에서는, InnoDB가 기본적으로 비동기 I/O 서브시스템을 사용하여 데이터 파일 페이지에 대한 리드 어헤드 및 쓰기 요청을 수행하며, 이로 인해 이러한 유형의 I/O 요청을 처리하는 InnoDB 백그라운드 스레드의 동작 방식이 변경됩니다. 자세한 내용은 Section 17.8.6, “Using Asynchronous I/O on Linux”를 참조하십시오.
InnoDB I/O 성능에 대한 자세한 내용은 Section 10.5.8, “Optimizing InnoDB Disk I/O”를 참조하십시오.
17.8.4 Configuring Thread Concurrency for InnoDB
17.8.6 Using Asynchronous I/O on Linux