innodb_buffer_pool_size를 즉시 변경

innodb_buffer_pool_size를 즉시 변경

innodb_buffer_pool_size현장에서 변경이 가능한지 궁금합니다 .

내 서버에 버퍼 풀이 초과 할당되어 현재 교체 중인 것 같습니다. 슬레이브 서버에서 이 값을 변경하고 MySQL 데몬을 다시 시작했는데 이제 모든 것이 괜찮아 보입니다. 하지만 마스터 서버를 오프라인으로 전환할 수는 없습니다.

적어도 inndb 버퍼를 플러시하여 일부 메모리를 확보할 수 있는지 잘 모르겠습니다.

# ps aux --sort -vsz | head -n2
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql     2064 14.6 93.8 17369060 15328044 ?   Sl   Jul22 7096:48 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysql/mysql-error.log --pid-file=/var/lib/mysql/mysql.pid --socket=/var/lib/mysql/mysql.sock --port=3306

# free -m
                 total       used       free     shared    buffers     cached
    Mem:         15949      15786        163          0          4        104
    -/+ buffers/cache:      15677        272
Swap:         4095        346       3749

답변1

innodb_buffer_pool_size를 즉시 변경할 수 있는지 궁금합니다.

당신은 할 수 없습니다.innodb_buffer_pool_size동적 변수가 아닙니다.

적어도 inndb 버퍼를 플러시하여 일부 메모리를 확보할 수 있는지 잘 모르겠습니다.

MySQL 메모리 사용량 문제 해결유용할 수 있습니다.

답변2

MySQL 5.7에서는 이제 동적으로 innodb_buffer_pool 크기를 수정할 수 있습니다.

15.4.3.2 InnoDB 버퍼 풀 크기 구성

새 풀 크기는 다음의 배수여야 합니다.

innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

또는 잘못된 숫자로 설정된 경우 다음으로 높은 배수를 사용합니다.

관련 정보