Pourquoi, quand vous demandez à mettre en production une application java containérisée avec docker, vos ops font soudain la grimace ? Pourquoi vos containers, qui marchaient si bien sur votre PC, crashent si souvent en production ; et aussi pourquoi la RAM des noeuds se met-elle à swaper autant ?
Ces problèmes nous les avons rencontrés et nous vous proposons de partager ensemble nos découvertes et nos réflexions sur l'utilisation combinée de java et de docker.
Ensemble creusons la RAM, le CPU et les différentes options de gestion de mémoire de la JVM pour obtenir le bon fonctionnement de notre application dans un containeur.
2. Pourquoi, quand vous demandez à mettre en production une application
java containérisée avec docker, vos ops font soudain la grimace ?
Pourquoi vos containers, qui marchaient si bien sur votre PC, crashent
si souvent en production ; et aussi pourquoi la RAM des noeuds se
met-elle à swaper autant ?
Ces problèmes nous les avons rencontrés et nous vous proposons de
partager ensemble nos découvertes et nos réflexions sur l'utilisation
combinée de java et de docker.
Ensemble creusons la RAM, le CPU et les différentes options de gestion
de mémoire de la JVM pour obtenir le bon fonctionnement de notre
application dans un containeur.
#Hashtag@twitter
3. Le code et les situations de ce récit étant purement fictifs, toute
ressemblance avec des personnes ou des situations existantes ou ayant
existées ne saurait être que fortuite ;-)
Disclamer
#Hashtag@twitter
4. On fait une belle application java
et ….
#Hashtag@twitter
10. Conclusion
#Hashtag@twitter
-m 256M --cpu-shares 500 -m 256M
with
-XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap
-m 256M
FROM openjdk:8-jre-slim
(before 8u131)
FROM openjdk:8-jre-slim
(before 8u191)
and
FROM openjdk:9-jre-slim
FROM openjdk:10-jre-slim
{
free memory: "58,658",
allocated memory: "60,928",
total free memory: "895,266",
max memory: "897,536",
available processors: "4"
}
{
free memory: "6,035",
allocated memory: "7,936",
total free memory: "122,835",
max memory: "124,736",
available processors: "4"
}
{
free memory: "6,035",
allocated memory: "7,936",
total free memory: "122,835",
max memory: "124,736",
available processors: "4"
}
Beware of the docker version too
12. - Build docker with maven
- jlink vs -cp vs fatjar
- jolokia vs Glowroot,...
Pensives (and other thoughts)
#Hashtag@twitter
Beware of the docker version too