A maioria desses arquivos tem o mesmo tamanho. Verifique o que está em um deles. Meu primeiro palpite é que seu servidor aceita uploads de arquivos e não limpa se você não usar os arquivos enviados.
Estou executando um servidor web no CentOS.
Hoje não consegui executar nenhuma consulta SQL. Na investigação, error 28
, meu diretório /tmp
não pôde ser gravado.
Eu corri du /tmp
e foi 1.8Gb. Eu então corri o find /tmp -type f -mtime +8 -exec rm -f {} \;
que liberou 300Mb de espaço.
Por enquanto, isso fez o trabalho - o MySQL pode operar novamente.
No entanto, estou curioso para saber por que o servidor tem tantos arquivos em seu diretório /tmp
. Eu reiniciei o servidor duas vezes e o tamanho do diretório permaneceu o mesmo. A maioria das distribuições Linux não limpa os arquivos temporários na reinicialização?
Se eu executar ls /tmp
, obtenho uma lista enorme desse tipo de arquivo:
tempCaa7Nw tempk7uZU4 temps3GaF1 tempzzWWjV
tempcAbH5o tempK7VCdu temps3hRWv tempZzXHPM
tempCabZXR tempk7VwjK temps3IdYj tempzzxZWw
tempcAcQtu tempk7W0SI tempS3IGMF tempzZy7FM
tempCaCTkx tempk7xrzw tempS3iMfj tempzZy8L6
tempcAcur7 tempk7yX3J tempS3izd5 tempZZYKXr
tempcaCwnz tempk81EIE tempS3JU5s tempzZyQLO
tempcAdpAk tempk81Qpo tempS3kaNx tempzZZos7
tempCaeFae tempk81ZLV tempS3KYOx
tempcaEGmt tempk83VVy tempS3LI1u
Lista completa aqui .
Preciso descobrir o que está causando tantos arquivos temporários? Ou eu simplesmente preciso aumentar o tamanho (ou algo assim) do meu diretório /tmp
? Isso está em algum arquivo de configuração?
Sou um mau administrador de linux, então, por favor, desculpe minha ignorância.
EDITAR para @JeffFerland
Aqui estão os resultados de grep /tmp
no arquivo de saída lsof
.
mysqld 4649 mysql 4u REG 7,0 0 103774 / tmp/ib4mpAJ8 (deleted)
mysqld 4649 mysql 5u REG 7,0 0 103775 / tmp/ibvE7FxN (deleted)
mysqld 4649 mysql 6u REG 7,0 0 103776 / tmp/ibPe3Lls (deleted)
mysqld 4649 mysql 7u REG 7,0 0 103777 / tmp/ib656Kb7 (deleted)
mysqld 4649 mysql 11u REG 7,0 0 103778 / tmp/ibpptQzP (deleted)
cp 7997 root 3r REG 7,0 18897 28260 / tmp/tempF091j1
cp 7997 root 4w REG 9,1 0 297690 / tmp_bu/tmp/tempF091j1 (deleted)
EDIÇÃO ADICIONAL
Tendo deletado ~ 300Mb de arquivos ontem, meu diretório /tmp
está de volta ao seu tamanho original de 1.8Gb e, mais uma vez, o MySQL não está funcionando corretamente.
Por favor, ajude!
Uma coisa que você pode tentar é usar o comando lsof
para listar todos os arquivos atualmente em uso pelo sistema operacional. Isso pode lhe dar uma idéia de quais processos estão criando / usando esses arquivos /temp.*/. A partir daí, supondo que você descubra qual processo é o culpado, eu detalharia e veria quais opções de configuração poderiam estar disponíveis para reduzir o spam do arquivo.
Sistemas diferentes fazem coisas diferentes. Eu trabalhei em sistemas que limparam / tmp na reinicialização (sequent mini's), mas a maioria das distribuições de linux que eu encontrei tem um cron job tmpwatch que limpa / tmp.
Alguns programas criam um arquivo tmp e o excluem, mantendo o identificador de arquivo aberto, de modo que, se o programa terminar ou morrer por qualquer motivo, o espaço será recuperado. Você pode fazer
lsof|grep deleted
para ver quais arquivos estão abertos, mas excluídos. Você pode então olhar para / proc // fd e ver quais arquivos são os maiores e qual processo eles abrem.
Talvez seja útil criar um volume dedicado para o MySQL, / tmp-mysql, e apontar o MySQL para esse caminho, definindo TMP = / tmp-mysql para o script de início. Dessa forma, o MySQL deve manter-se operacional mesmo quando o / tmp for preenchido.