![Limite o tamanho do tmpdir](https://rvso.com/image/1417411/Limite%20o%20tamanho%20do%20tmpdir.png)
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.