Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tools in action : Java in docker

Tools in action : Java in docker

Let's take a look at java in docker .
--
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 memoire de la JVM pour obtenir le bon fonctionnement de notre application dans un containeur.

- https://www.youtube.com/watch?v=-mU8O6JRmts
- https://cfp.devoxx.fr/2018/talk/GJX-5094/Java_dans_Docker_:_Bonnes_pratiques

kanedafromparis

April 18, 2018
Tweet

Other Decks in Technology

Transcript

  1. #DevoxxFR 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 memoire de la JVM pour obtenir le bon fonctionnement de notre application dans un containeur. 2
  2. #DevoxxFR DISCLAIMER We try to keep the Devox France logo

    and the Tweet hashtag on all slides 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 ;-)
  3. #DevoxxFR A Short story of a web application (microservice ;-)

    https://github.com/kanedafromparisfriends/ resourcesmonger 5
  4. #DevoxxFR WHO WE ARE 7 Jean-Christophe Sirot Charles Sabourdin Software

    Engineer Chez Docker @jcsirot Architecte / DevOps FreeLance @kanedafromparis
  5. #DevoxxFR Conclusion 1 0 -m 256M --cpu-shares 500 -m 256M

    with -XX:+UnlockExperimentalVMOptions \ -XX:+UseCGroupMemoryLimitForHeap -m 256M FROM openjdk:8-jre-slim FROM openjdk:8-jre-slim 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
  6. #DevoxxFR Tips 1 1 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
  7. #DevoxxFR We love picture We try to keep the Devox

    France logo and the Tweet hashtag on all slides 1 2 Autres axes de réflexions : Questions - Où mettre l’information du paramétrage de la mémoire - Bonne façon de faire son build (fat-jar, lib, jlink…)