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 크기를 수정할 수 있습니다.
새 풀 크기는 다음의 배수여야 합니다.
innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
또는 잘못된 숫자로 설정된 경우 다음으로 높은 배수를 사용합니다.