Uso de memória do MySQL - Periodicamente, é necessário executar FLUSH TABLES ou o uso de memória continua crescendo com páginas grandes ativadas

3

Depois de mudar nosso servidor de banco de dados rico em memória + físico para grandes páginas, notamos um pequeno problema.

O uso de memória quase parece que há algum tipo de vazamento de memória.

Mas rodar FLUSH TABLES expurga cerca de 10gigs de memória usada (dependendo de quando o executamos, como em quanto tempo esperamos).

Anexado é um gráfico munin para mostrar esse uso de memória.

O que está nos causando a forçar FLUSH TABLES a cada 2 ou mais dias?

Notas sobre o gráfico anexado:

a) O bom uso da memória plana no início do gráfico é quando estávamos executando (Oracle) MySQL 5.6 SEM páginas grandes.

b) O uso de memória inclinada entre 10 e 11 foi quando estávamos executando o Percona 5.6 com páginas grandes. No final de 11, voltamos do Percona para o Oracle MySQL 5.6 (mas decidimos deixar páginas grandes).

c) O uso de memória inclinado entre 12-14,5 é quando voltamos ao (Oracle) MySQL 5.6 com grandes páginas ativadas. Achamos que esse uso crescente de memória foi causado por algum tipo de vazamento de memória no Percona. É por isso que voltamos para o (Oracle) MySQL 5.6. Mantendo páginas grandes.

d) A queda no uso de memória em torno de 14,5 é quando tentamos executar FLUSH TABLES (neste momento ainda executando o Oracle MySQL 5.6, sem reinicialização, apenas fazendo um FLUSH TABLES simples).

Após essa troca de ida e volta, aprendemos que a causa NÃO era percona 5.6, mas grandes páginas.

Então, para resumir:

O que está nos forçando a executar FLUSH TABLES a cada 2 ou mais dias para evitar a privação de memória com grandes páginas ativadas?

Eu entendo que podemos programar um FLUSH TABLES durante o horário de pico, mas gostaríamos de resolver isso corretamente.

Obrigado!

    
por anonymous-one 15.12.2013 / 11:14

1 resposta

2

Eu não acho que isso seja um vazamento de memória. Pode ser simplesmente que, sem grandes páginas, o uso da memória atingiu os limites superiores (teto), motivo pelo qual o uso da memória parece plano. Depois de mudar para páginas grandes, o MySQL pode simplesmente ter usado melhor a memória disponível. O sistema não está entrando em swap. Eu diria de perto monitorar e parar de flushing tabelas.

    
por 20.08.2014 / 00:26