14.13.1.4 다중 버퍼 풀 인스턴스 사용
버퍼 풀 수 G 바이트의 범위에있는 시스템에 버퍼 풀을 개별 인스턴스로 분할하면 캐시 된 페이지에 다른 스레드가 읽기 및 쓰기를 할 때 충돌이 줄어들 기 때문에 동시성을 향상 경우가 있습니다. 이 기능은 일반적으로 버퍼 풀 의 크기가 몇 G 바이트의 범위에있는 시스템을 대상으로하고 있습니다. 다중 버퍼 풀 인스턴스는 innodb_buffer_pool_instances
구성 옵션을 사용하여 구성되며 innodb_buffer_pool_size
값을 조정할 수 있습니다.
InnoDB 버퍼 풀이 큰 경우는 메모리로부터 취득하여 많은 데이터 요구를 만족 할 수 있습니다. 여러 스레드가 한 번에 버퍼 풀에 액세스하려고하면 병목 현상이 발생할 수 있습니다. 이 충돌을 최소화하기 위해 다중 버퍼 풀을 활성화 할 수 있습니다. 버퍼 풀에 저장되거나 버퍼 풀에서 읽고있는 각 페이지는 해시 함수를 사용하여 하나의 버퍼 풀에 무작위로 할당됩니다. 각 버퍼 풀은 자신의 빈 목록 플래시 목록 LRU 및 버퍼 풀에 연결된 다른 모든 데이터 구조를 관리하고 자신의 버퍼 풀 상호 배타 락에 의해 보호됩니다.
다중 버퍼 풀 인스턴스를 사용하려면 innodb_buffer_pool_instances
구성 옵션을 1 (기본값)보다 크게 64 (최대)까지의 값으로 설정합니다. 이 옵션은 innodb_buffer_pool_size
를 1G 바이트 이상의 크기로 설정 한 경우에만 사용할 수 있습니다. 지정한 총 크기는 모든 버퍼 풀 사이에 분할됩니다. 최고의 효율을 얻기 위해서는 innodb_buffer_pool_instances
과 innodb_buffer_pool_size
의 조합을 각 버퍼 풀 인스턴스가 적어도 1G 바이트가되도록 지정합니다.
InnoDB 버퍼 풀의 자세한 내용은 섹션 8.9.1 "InnoDB 버퍼 풀" 을 참조하십시오.