MySQL InnoDB Buffer Pool Resizing Online
· Version : MySQL 5.7.5, 8.0
MySQL 5.7.5 부터 InnoDB 버퍼풀의 크기를 서비스 가동중에도 동적으로 조절할 수 있다. 동적으로 버퍼풀 확대 또는 축소를 제공하기 위해 청크 크기를 정의하는 새로운 변수인 innodb_buffer_pool_chunk_size 가 도입되었으며, 이 변수는 동적이 아니며 잘못 구성되면 원하지 않는 상황이 발생할 수도 있다.
아래 그림은 innodb_buffer_pool_size, innodb_buffer_pool_instances , innodb_buffer_pool_chunk_size가 상호작용하는 방식을 나타낸것이다.
버퍼풀은 여러 인스턴스를 보유할 수 있으며 각 인스턴스는 청크로 분할된다. 인스턴스의 수는 1개 ~ 64개 까지 될 수 있으며 총 청크의 양은 1000개를 초과하지 않도록 해야한다. 따라서 3GB RAM이 있는 서버에서, 8개의 인스턴스가 있는 2GB의 버퍼 풀 및 기본값(128M)의 청크를 가지고 있는 경우 인스턴스당 2개의 청크를 얻게 된다. 이 뜻은 16개의 청크가 있음을 의미한다.
현재 설정되어있는 버퍼풀 크기를 확인하는 방법은 아래 스크립트를 사용한다.
mysql> show global variables like 'innodb_buffer_pool_size'; +-------------------------+------------+ | Variable_name | Value | +-------------------------+------------+ | innodb_buffer_pool_size | 1073741824 | +-------------------------+------------+ |
버퍼 풀 크기를 조절하는 방법은 아래 스크립트를 실행한다. 이때 파라메터는 바이트 값이므로 설정시 주의 한다.
mysql> set global innodb_buffer_pool_size=1610612736; |
[참고자료]
· InnoDB Buffer Pool Resizing: Chunk Change : https://www.percona.com/blog/2018/06/19/chunk-change-innodb-buffer-pool-resizing/
2020-10-20 / Sungwook Kang / http://sungwookkang.com
MySQL, Buffer Pool, innodb_buffer_pool_size, innodb_buffer_pool_instances , innodb_buffer_pool_chunk_size, 버퍼풀 사이즈 조절
'MySQL, MariaDB' 카테고리의 다른 글
ProxySQL 이란 무엇인가 (0) | 2023.07.20 |
---|---|
MySQL Master DB를 백업하여 Replication Slave DB 구성하기 (0) | 2021.05.29 |
MySQL MMM 구성 (Centos7 + MySQL 8.0) (1) | 2020.02.01 |
MySQL/MariaDB Single-pass, Two-pass Sort Algorithm (0) | 2019.09.21 |
MySQL/MariaDB Sort Buffer (1) | 2019.09.20 |