Limite o tamanho do tmpdir

Limite o tamanho do tmpdir

Preciso limitar o uso do disco do MySQL tmpdir para que ele não "consome" todo o espaço disponível em disco. Existem cerca de 30G disponíveis, mas vi o mysqld usando tudo isso para criar uma tabela temporária.

Minha primeira abordagem foi implementar a cota de disco, mas tive problemas porque não sei como definir a cota enquanto o disco está em uso. Isso poderia ser feito provavelmente na inicialização do script de inicialização, mas não sei se é uma boa ideia.

Alguma sugestão? Quais seriam as melhores práticas nesta situação?

SO é RedHat

uname -a    
Linux www.myservername.com 2.6.18-194.17.1.el5 #1 SMP Mon Sep 20 07:12:06 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux


mysql --version
mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1

Responder1

Voce tem certeza disso? AFAIK, as tabelas temporárias existem enquanto forem necessárias - para uma consulta, mas depois desaparecerão. Se você tiver tantas consultas ativas que precisam de tabelas temporárias de 30 GB, isso causará muito mais problemas do que usar todo o espaço livre (eu quis dizer IO de disco, etc.)

Você ainda pode jogar com o ulimit, mas isso precisará pelo menos reiniciar o serviço, então não tenho certeza se isso é melhor do que configurar cotas.

Responder2

Se você tiver LVM, crie uma montagem de partição separada no tamanho necessário. você pode usar a opção --tmpdir para mysqld.

Verifique isso.http://dev.mysql.com/doc/refman/5.0/en/temporary-files.html

Responder3

Depois de muitas tentativas em uma máquina virtual, decidi que é um risco muito grande para um ambiente de produção forçar a cota em (-m). O problema só aconteceu uma vez, já que estou cuidando dessa infraestrutura e suspeito que ela esteja relacionada a uma consulta duvidosa no servidor, criando uma enorme tabela temporária.

Obrigado a todos pelas sugestões.

informação relacionada