mysql falha de arquivo de troca em freebsd

1

Eu tenho um VPS com pouca memória que o mysql e o arquivo de swap quebram todas as manhãs exatamente às 03:00. Não há cronjobs no sistema que foram configurados. O servidor é um servidor de desenvolvimento LAMP básico e todas as configurações são padrões.

 cat /var/log/messages|grep -i mysql
Jun 25 20:51:07 vader sshd[72946]: error: PAM: authentication error for mysql from 65.52.155.140
Jun 28 03:01:34 vader kernel: pid 848 (mysqld), uid 88, was killed: out of swap space
Jun 28 03:01:34 vader kernel: pid 93947 (mysqld), uid 88, was killed: out of swap space
Jun 29 03:01:32 vader kernel: pid 98578 (mysqld), uid 88, was killed: out of swap space
Jun 29 03:01:33 vader kernel: pid 2586 (mysqld), uid 88, was killed: out of swap space

Meu arquivo de troca é 1 gig. Eu tentei 2 shows, o mesmo padrão de falha começa depois de uma semana.

 ls -l /home/sw*
-rw-------  1 root  wheel  1073741824 Jun 21 13:19 /home/swap0

Ainda pior, não consigo reinicializar o arquivo de troca sem reiniciar

swapoff -a  mdconfig -a -t vnode -f / home / swap0 -u 0 & & swapon / dev / md0 mdconfig: ioctl (/ dev / mdctl): Dispositivo ocupado

Eu não tenho muita memória para trabalhar:

# vmstat
 procs      memory      page                    disks     faults         cpu
 r b w     avm    fre   flt  re  pi  po    fr  sr vt0 md0   in   sy   cs us sy id
 1 0 3   1709M   491M    44   0   0   0    54  29   0   0    4  135   94  0  0 100

Mas eu não precisaria se o mysql estivesse rodando corretamente.

Duas perguntas.

não. 1) Como faço para reinicializar um arquivo de troca depois que ele falha, então não preciso reiniciar (gostaria apenas de saber, porque tudo que eu encontrar no google falha)?

não. 2) Como faço para estabilizar o mysql para que ele não arrote em 0300 para grandes quantidades de memória?

    
por NIX 29.06.2015 / 19:13

1 resposta

0

Eu só estava vendo esse comportamento também, exceto no meu caso, o servidor mysql estava morrendo semanalmente em vez de diariamente. Aconteceu ao mesmo tempo que as tarefas periódicas semanais são executadas (veja / etc / crontab e /etc/cron.d/periodic/{daily,weekly}/). Do seu log parece que acontece às 03:01 que é durante a execução da tarefa periódica diária (começa às 03:00). Existem algumas soluções possíveis:

  • Evite executar as tarefas periódicas ou, pelo menos, identifique qual tarefa está consumindo memória. No meu caso, foi o comando makewhatis que é executado semanalmente
  • Adicione mais troca. Passado um certo ponto, deve haver memória suficiente para o servidor coexistir com as tarefas periódicas
  • Adicione outra tarefa periódica que é executada após as outras e reinicia o servidor
por 23.06.2018 / 19:01