Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problemas de desempenho ao executar um banco de dados em um contêiner docker


O próprio Docker impõe muito pouca sobrecarga, apenas isola o processo de outros processos no host. No entanto, há muitas coisas que você pode fazer para degradar o desempenho de um contêiner:
  1. Execute-o no Windows/MacOS enquanto fornece à VM incorporada apenas uma fração da memória/CPU do sistema operacional pai.
  2. Restringir recursos de CPU ou memória dentro do contêiner.
  3. Inicie muitos contêineres em seu host. O Docker não é mágico, se 10 instâncias de Java, cada uma usando 2 GB de RAM, levarem o host para um rastreamento fora do contêiner, elas não funcionarão melhor dentro dos contêineres.
  4. Complicações de rede. Cada contêiner é, por padrão, girado em uma ponte de rede isolada, onde a E/S pode demorar um pouco mais com os saltos extras. E se seu DNS não estiver configurado corretamente, você poderá ver atrasos extras de pesquisas com falha.
  5. Requisitos bare metal, como acesso direto ao disco, não são permitidos por padrão no Docker. Você pode conceder acesso a dispositivos específicos, mas, caso contrário, a versão em contêiner do aplicativo é isolada intencionalmente.
  6. Os dados em volumes podem residir em um local menos eficiente. Por padrão, é seu sistema de arquivos /var/lib/docker, mas você pode facilmente apontar isso para uma montagem NFS onde o desempenho seria ainda pior.
  7. DB mal configurado, por exemplo esquecendo de criar um índice.

Em suma, é improvável que o contêiner seja o problema em si, mas certifique-se de fazer uma comparação de maçãs com maçãs.