Aumentar o tamanho do buffer pool do InnoDB


11

Estou com dificuldades para definir o tamanho do buffer pool e o tamanho do arquivo de log do MySql InnoDB. Estou longe de ser um especialista em MySql, mas tenho lido e parece que, para mudar isso, apenas adiciono estas linhas ao meu /etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

O servidor tem cerca de 7 GB de memória e também está executando um servidor Web, então acho que esses números devem ser um bom ponto de partida. Após salvar e reiniciar o servidor, no entanto, não parece que as alterações tenham entrado em vigor. Tentei executar o Mysqltuner, que relatou que o buffer pool ainda está em 16.0M. Alguma idéia do que estou fazendo de errado? Deixe-me saber se você gostaria de ver mais do arquivo de configuração. Obrigado!


que distribuição? você está usando os pacotes da distribuição ou algo mais? Como você está iniciando o mysql? Em resumo, o que você instalou, no que instalou e como instalou?
Navaho

É a pilha lâmpada padrão no topo do x64 servidor Ubuntu
tgrosinger

Havia outro arquivo de configuração localizado em / opt / lampp / etc que eu acredito que vai funcionar.
tgrosinger

Respostas:


7

Verifique se essas linhas estão dentro da [mysqld]seção, ou seja, depois, [mysqld]mas antes de qualquer outra [section], como [mysqldump].


Eles estão na seção correta, em [mysqld] direita antes [mysqldump]
tgrosinger

2

Verifique o log de erros do MySQL para obter informações - provavelmente localizadas em /var/lib/mysql- também, este é um sistema de 32 bits com o kernel bigmem? Nesse caso, você não pode endereçar mais de 2 GB para o MySQL.

Além disso - você deseja confirmar no próprio MySQL sobre o tamanho do buffer pool - 16 MB soa um pouco, considerando que o padrão é 128M. Você pode confirmar isso digitando 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'em uma sessão do MySQL para esse servidor. O resultado está em bytes.


Por alguma razão, não consigo entrar nesse diretório. Eu posso vê-lo quando ls em / var / lib, mas quando tento fazer o cd nele, recebo "permissão negada". Se eu tentar fazer o cd como sudo, ele diz "Não existe esse arquivo ou diretório". Pensamentos? É uma instalação de 64 bits do Ubuntu Server.
tgrosinger

Você deve postar o meu my.cnf (/etc/my.cnf ou no debian provavelmente /etc/mysql/my.cnf)
thinice

Além disso - você deseja confirmar no próprio MySQL sobre o tamanho do buffer pool - 16 MB soa um pouco fora, considerando que o padrão é 128M. Você pode confirmar isso digitando 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'em uma sessão do MySQL para esse servidor. O resultado está em bytes.
thinice

1
sudo cdnão funcionará porque o sudo cria um subshell com os privilégios corretos e fecha quando termina, deixando você onde você começou. Tente em sudo -svez disso.
21412 Ladadadada

Então, quando eu uso SHOW VARIABLES LIKE ... ele diz que o tamanho do buffer pool é 16777216, que eu acredito que é de fato 16M. Aqui está o my.cnf: haste.bin / binaqeforu.vala Muito obrigado!
tgrosinger

2

No meu caso, o problema era innodb_buffer_pool_instances.

Desde que eu estava reduzindo innodb_buffer_pool_size, tornou-se menos de 1 GB por instância, e acabou arredondando-o.

Quando eu também reduzi as instâncias , ele finalmente mudou o tamanho da piscina !


0

Pode ser que você inicie o mysql com --no-defaults ou (-no-defaults), o que faz com que ele não carregue uma configuração. Há também --defaults-file (ou -default-file, não tenho certeza), o que faz com que ele carregue uma configuração específica. Verifique também se é para uma configuração diferente daquela que você edita.

Você pode tentar começar com:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

Ou verifique os parâmetros com os quais você está começando e veja se um deles faz com que ele omita a configuração.


Como posso ver como ele está iniciando no ubuntu? Eu estou acostumado a arquear onde apenas o adicionaria ao arquivo rc.d, mas não vejo nada parecido aqui.
tgrosinger

Arch usa o BSD Style Init, enquanto o Ubuntu usa o SysV Init. Portanto, existe um arquivo no /etc/init.d para iniciá-lo e, possivelmente, um arquivo no / etc / defaults onde as opções estão sendo definidas. Usando algo como 'ps -ef | grep mysql 'você pode ver com quais opções ele está sendo executado atualmente.
juwi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.