Limite o tamanho do tmpdir

1

Eu preciso limitar o uso de disco do MySQL tmpdir para que ele não "coma" todo o espaço em disco disponível. Existem cerca de 30G disponíveis, mas eu 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 pode ser feito provavelmente no momento da inicialização no script de inicialização, mas não sei se é uma boa idéia.

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

OS é 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
    
por Lyhan 30.07.2014 / 13:33

3 respostas

1

Você tem certeza disso? AFAIK as tabelas temporárias estão existindo enquanto precisavam - para uma consulta, mas depois elas desaparecerão. Se você tiver tantas consultas ativas que precisem de tabelas temporárias de 30GB que causem muito mais problemas do que usar todo o espaço livre (eu quis dizer disco IO etc.)

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

    
por 01.08.2014 / 15:43
1

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

Verifique isso. link

    
por 13.08.2014 / 10:02
0

Após várias tentativas em uma máquina virtual, decidi que é um risco muito grande para um ambiente de produção forçar a cota em (-m). A questão só aconteceu 1 vez desde que eu estou cuidando dessa infra-estrutura e suspeito que ela deve estar relacionada a uma consulta desonesta no servidor criando uma enorme tabela temporária.

Obrigado a todos pelas sugestões.

    
por 13.08.2014 / 08:43

Tags