Digital Ocean: Queda do MySQL com muitos acessos

Recentemente tive problemas com um site na Digital Ocean, recebi várias visitas ao mesmo tempo e o MySQL caiu, o problema não era efetivamente da Digital Ocean, o problema é que faltou memória ram e o servidor derrubou o serviço do MySQL.

Esse foi o error que tive:

ERROR 2002 (HY000): Can't connect to local MySQL server 
through socket '/var/run/mysqld/mysqld.sock' (111)

Para tentar resolver esse problema podemos fazer algumas coisas, a primeira delas é setar o tamanho de memória para o innodb_buffer_pool_size:

# edite o arquivo /etc/mysql/my.cnf
[mysqld]
innodb_buffer_pool_size=64M

Outra opção importante, é criar uma partição de memória swap. Os servidores da Digital Ocean não possuem por padrão memória swap alocada, para fazer isso seguimos os seguintes passos:

– Primeiro criamos um arquivo para representar a memória swap, no meu caso vou usar 4G, o mesmo tamanho usado pelo tutorial da Digital Ocean:

sudo fallocate -l 4G /swapfile

– Mudamos a permissão desse arquivo para apenas o usuário sudo poder edita-lo:

sudo chmod 600 /swapfile

– Setamos o arquivo para ser usado como swap:

sudo mkswap /swapfile

– Ativamos a memória swap:

sudo swapon /swapfile

Para visualizar se tudo deu certo podemos digitar o comando free para lista o uso da memória ram ou o swap on -s:

free
# ou
swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        4194300 0       -1

Referências:
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
http://www.webtrafficexchange.com/solved-mysql-crash-fatal-error-cannot-allocate-memory-buffer-pool

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *