docker peut on partager la mémoire

a marqué ce sujet comme résolu.

Bonjour j’ai une question avec docker, je souhaite lancer sur ma machine une 20aine de docker qui lancerons un meme programme, au lieu de dupliquer la mémoire de ces process (et des libs qu’ils charges)

j’aimerais savoir si on pouvait mettre en place un système comme dans les machines virtuel (du memory balooning) c’est a dire de ne pas dupliquer les memes plages

j’ai regardé la doc et je suis tombé sur le paramètre ipc que je pense être ce que je recherche

si je mets ipc = host a tout mes dockers es ce que cela fera ce que je demmande ? ou bien j’ai mal compris et l’ipc n’a rien a voir

Non l’IPC ne fera pas ce que tu demandes. Son but est de mettre en place des canaux de connexions entre tes différents Docker. Cela peut être de la mémoire partagée, ou autre dispositif IPC POSIX.

C’est pour de la communication interprocessus, cela n’est pas conçu pour partager une bibliothèque commune par exemple.

Il faut bien comprendre que ce que tu souhaites demande un peu d’effort. D’habitude le noyau a conscience quand deux processus partagent la même bibliothèque il peut allouer qu’une fois le code. Car les processus partagent le même fichier. Ici le noyau n’a pas vraiment moyen de savoir que tes bibliothèques au sein d’instances différentes pointent vers le même fichier, sans aucune différence. Il faudrait mettre en place des procédures plus complexes comme comparaison de somme de contrôles des fichiers mais ça pèse en maintenance et performance.

Je ne suis pas expert Docker, mais pour obtenir ce que tu veux, le mieux semblait être d’utiliser une image Docker contenant ce qui est partagé entre tes instances sans changement (comme tes bibliothèques) et d’utiliser le concept de volume dans chacun d’eux pour récupérer cette données partagées.

Ainsi tes bibliothèques partagées ne seront bien allouées qu’une fois en mémoire.

+0 -0

Je suis pas sûr de vraiment savoir de quoi je parle, ni d’avoir compris le problème, mais j’ai récemment entendu parle de KSM, et notamment de son utilisation sur les hyperviseurs faisant tourner des VMs similaires. En supposant que tu sois sous Linux, l’activer peut sûrement aider dans le cas où tu lances plusieurs containers similaires.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte