Eu quero espremer cada grama de uso possível da camada de elástico livre do pé de feijão.
Meu back-end é construído como um conjunto de microsserviços (usando o ktor). Eu tenho 5 microsserviços para ser mais preciso. Tudo isso é dockerizado e eu estou tentando executá-los na mesma pequena instância do t2.micro (free) elástico beanstalk com o ambiente de imagem multi-docker
Java sendo java, ele gosta de ocultar cerca de 200 MB de RAM por contêiner de docker, mesmo para o microsserviço mais simples.
Então, o t2.micro fornece 1 GB de RAM. Eu tenho 5 contêineres de docker para microsserviços que exigem pelo menos 200 MB cada = muito perto.
O problema é que a memória quase sempre está pairando ferozmente perto de 100% quase o tempo todo.
Portanto, existe uma maneira de alocar dinamicamente a memória para os contêineres do docker, dependendo de quanto está livre e com que desespero um contêiner precisa?
Digamos que um contêiner esteja fazendo algum trabalho pesado enquanto os outros estão ociosos. Quero direcionar alguma RAM para o contêiner que está executando a tarefa pesada e, depois que a tarefa terminar, volte à alocação de RAM igual por contêiner.
Existe uma maneira de fazer isso?
fonte