Docker – résultat de migration VM vers conteneurs

Les premiers resultats se confirment: le passage aux conteneurs docker me permet de faire de economies drastiques de ressources !

Avec 15 VM (soit 15 applications) qui occupaient 17 Go de RAM mon systeme hôte montrait des signes de saturation. J’ai déjà migré 7 applications et cela se traduit par un du nombre de service (conteneur docker) consequent car une application est constituée par exemple d’un service wordpress et d’un service de base de données. Actuellement pour 7 applications j’ai 17 conteneurs mais qui tiennent dans 4 Go de RAM.

Ceci me permet d’avoir une prod et une preprod. J’ai 14 applications dans 2 VM pour 8 Go de RAM totale.

Réduction du nombre de VM

Si au démarrage du projet j’ai ajouté 2 VM pour accueillir la production et la préproduction. La transformation progressive des anciennes VM de prod en conteneur à porté ses fruits.

La capture suivante montre bien l’empreinte mémoire des VM diminuer au fur et à mesure de leur disparition. Actuellement les VM occupent 14 Go contre 17 Go avant. Le gain semble faible en réalité il est très important…. car j’ai aujourd’hui le double d’application: une prod et une preprod. Je suis donc virtuellement passé de 34 Go à 14 Go !

Multiplication des conteneurs

Quand on observe le contenu de la VM de production, on voit que la transformation de 7 application qui tenaient dans 8 VM à cause d’une VM dédié à Elasricsearch pour un dzq blog, a donné naissance à 16 conteneurs. Il faut ajouter le gitlab-runner pour effectuer les déploiements.

On remarque que les conteneurs consomment à peine 300 Mo chacun sauf celui d’Elasticsearch. On comprend alors la gabegie d’avoir une VM dédiée par application.

Charge mémoire de l’hôte

La gestion de la mémoire des VM est telle que une VM ne rend jamais à l’hôte la mémoire allouée. On peut par une action manuelle diminuer la taille de la mémoire mais cela ne rend pas la mémoire au système. Donc ce qui est alloué au bénéfice de l’overcommit finira par générer du swap. L’extinction des VM au fur et à mesure montre bien la diminution de la charge mémoire.

Charge mémoire de la VM docker

La VM de prod avec 4 Go exécute sans broncher tous les conteneurs au prix d’un overcommit important. Toutefois puisque les services ne sont pas utilisés en même temps, le swap n’a pas encore eu lieu mais le système est à sa limite. Je ne vais pas pouvoir décemment rester avec 4 Go de RAM par VM.

Rejoindre la conversation

1 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.