Otimizando alocação de memória no MYSQL com Jemalloc
Os benefícios do alocador de memória jemalloc para uso com MySQL foram amplamente discutidos. Com o jemalloc, há menos fragmentação de memória e, portanto, gerenciamento de recursos mais eficiente da memória do servidor. Para o MySQL 5.6, a instalação do jemalloc no sistema é suficiente para habilitá-lo ao iniciar o processo do MySQL. No entanto, para as séries MySQL 5.7 e 8.0.X, você precisará realizar algumas etapas extras. (Texto do blog Oficial).
Confesso que demorei bastante para encontrar este recurso e após fazer a configuração correta, eu fiquei espantado em como o MYSQL tem se comportado, sim, nada técnico essa forma de dizer como foi bom, mas para fazer a configuração, é algo muito simples e não muito técnico também.
Atualmente eu utilizo o Percona Mysql e este tutorial é baseado em um post do blog oficial.
Para mais informações sobre o assunto, instalação e configuração, consulte: https://www.percona.com/blog/2020/12/02/enabling-jemalloc-on-percona-server-for-mysql-5-7-and-8-0-series/
#Configuração repositório e instalação (Ubuntu): wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb apt-get install libjemalloc1 #Abra o arquivo /lib/systemd/system/mysql.service #Verifique se contém essa linha EnvironmentFile=-/etc/default/mysql #Então acrescente esta linha abaixo no arquivo /etc/default/mysql LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1 #Reinicie o mysql e para verificar se esta habilitado: apt install -y percona-toolkit pt-mysql-summary | grep -A5 -i "memory management"
O Jemalloc não é o único (MALLOC, TCMALLOC…), mas é o recomendado no blog oficial do Percona. É bem improvável que essa implementação dê algum problema para você, pois ela é recomendada para produção. Em alguns casos você vai ter um desempenho melhor com menos consumo de memória.
Jemalloc é uma implementação de malloc que enfatiza a prevenção de fragmentação e o suporte à concorrência escalável. O jemalloc foi usado pela primeira vez como o alocador libc do FreeBSD em 2005 e, desde então, encontrou seu caminho em vários aplicativos que dependem de seu comportamento previsível. Em 2010, os esforços de desenvolvimento do jemalloc foram ampliados para incluir recursos de suporte ao desenvolvedor, como perfil de heap e extensos ganchos de monitoramento / ajuste. Lançamentos modernos de jemalloc continuam a ser integrados de volta ao FreeBSD e, portanto, a versatilidade permanece crítica. Os esforços de desenvolvimento contínuo tendem a tornar o jemalloc um dos melhores alocadores para uma ampla gama de aplicativos exigentes e a eliminar / atenuar os pontos fracos que têm repercussões práticas para os aplicativos do mundo real. Fonte.
Em outros posts irei mostra como habilita-lo em outras aplicações como Nginx.
Caso tenha alguma dúvida, deixe nos comentários.
Comentários