SlideShare une entreprise Scribd logo
Jean-Christophe Sirot Charles Sabourdin
@jcsirot @kanedafromparis
Java & Containers
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
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
On fait une belle application java
et ….
#Hashtag@twitter
https://github.com/kanedafromparisfriends/
resourcesmonger
A Short story of a web application (microservice ;-)
#Hashtag@twitter
O-M KILLER
#Hashtag@twitter
Jean-Christophe Sirot
Charles Sabourdin
Software Engineer Chez Docker
@jcsirot
Architecte / DevOps FreeLance
@kanedafromparis
Who we are
#Hashtag@twitter
#Hashtag@twitter
#Hashtag@twitter
--XX:NativeMemoryTracking=summary
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
Docker :
--memory-swappiness=0
Java :
-XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap
-XshowSettings:vm
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/dump
--XX:NativeMemoryTracking=summary
Tips
#Hashtag@twitter
Beware of the docker version too
- Build docker with maven
- jlink vs -cp vs fatjar
- jolokia vs Glowroot,...
Pensives (and other thoughts)
#Hashtag@twitter
Beware of the docker version too
#Hashtag@twitter
Thank you / Merci
https://fr.slideshare.net/kanedafromparis
Questions ?
- @jcsirot
- @kanedafromparis

Contenu connexe

PPT
JavaScript Devoxx France 2013
PDF
Performance des sites dynamiques : une histoire de cache à tous les niveaux
PPTX
.NET Core - Mug In Clermont
PDF
NodeJs in real life
PDF
OpenMQ François Ostyn
PPTX
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
PDF
Une introduction à Javascript
PDF
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
JavaScript Devoxx France 2013
Performance des sites dynamiques : une histoire de cache à tous les niveaux
.NET Core - Mug In Clermont
NodeJs in real life
OpenMQ François Ostyn
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Une introduction à Javascript
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013

Similaire à Java in docker devoxx ma 2018 (20)

PDF
meetup devops aix-marseille 2024-11 ----
PDF
2024-11 - meetup devops aix-marseille---
PPT
Cours 1/3 "Architecture Web"
PPTX
Javascript as a first programming language : votre IC prête pour la révolution !
PPTX
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
PPT
.Net pour le développeur Java - une source d'inspiration?
PDF
Decouvrir CQRS (sans Event sourcing) par la pratique
PDF
Du JavaScript propre ? Challenge accepted!
PDF
docker.pdf
PDF
Recruter et travailler avec un développeur
KEY
Make Web Not War 2010 Keynote - Français
PDF
NodeJs, une introduction
PDF
Introduction à la performance web
PDF
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
PDF
Node.js et les nouvelles technologies javascript
PDF
PDF
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
PDF
Retour expérience détection fraude temps réel
PDF
Softshake 2013 - Du JavaScript propre ? Challenge accepted!
PDF
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
meetup devops aix-marseille 2024-11 ----
2024-11 - meetup devops aix-marseille---
Cours 1/3 "Architecture Web"
Javascript as a first programming language : votre IC prête pour la révolution !
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
.Net pour le développeur Java - une source d'inspiration?
Decouvrir CQRS (sans Event sourcing) par la pratique
Du JavaScript propre ? Challenge accepted!
docker.pdf
Recruter et travailler avec un développeur
Make Web Not War 2010 Keynote - Français
NodeJs, une introduction
Introduction à la performance web
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Node.js et les nouvelles technologies javascript
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Retour expérience détection fraude temps réel
Softshake 2013 - Du JavaScript propre ? Challenge accepted!
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Publicité

Plus de kanedafromparis (8)

PDF
DevOpSec_DockerNPodMan-20230220.pdf
PDF
DevOpSec_KubernetesOperatorUsingJava.pdf
PDF
BBL Premiers pas avec Docker
PDF
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
PPTX
Dev opsec dockerimage_patch_n_lifecyclemanagement_
PDF
Openshift meetup Paris - 21/03/2018
PDF
Ippevent : openshift Introduction
PDF
Ippevent : openshift Introduction
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_KubernetesOperatorUsingJava.pdf
BBL Premiers pas avec Docker
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Openshift meetup Paris - 21/03/2018
Ippevent : openshift Introduction
Ippevent : openshift Introduction
Publicité

Java in docker devoxx ma 2018