SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
© 2016 Mesosphere, Inc. All Rights Reserved. 1
Nobody puts Java in the
Container*
@joerg_schad
© 2016 Mesosphere, Inc. All Rights Reserved. 3
© 2016 Mesosphere, Inc. All Rights Reserved. 5
Jörg Schad
Distributed Systems Engineer,
Mesosphere
@joerg_schad
© 2016 Mesosphere, Inc. All Rights Reserved.
! Datacenter-wide services to power your apps
! Turnkey installation and lifecycle management
6
DC/OS Universe
DC/OS
Any Infrastructure
! Container operations & big data operations
! Security, fault tolerance & high availability
! Open Source (ASL2.0)
! Based on Apache Mesos
! Production proven at scale
! Requires only a modern linux distro 

(windows coming soon)
! Hybrid Datacenter
DATACENTER OPERATING SYSTEM (DC/OS)
Datacenter Operating System (DC/OS)
Distributed Systems Kernel (Mesos)
Big Data + Analytics EnginesMicroservices ( containers)
Streaming
Batch
Machine Learning
Analytics
Functions
& Logic Search
Time Series
SQL / NoSQL
Databases
Modern App Components
Any Infrastructure (Physical, Virtual, Cloud)
© Gerard Julien/
Containers
© 2016 Mesosphere, Inc. All Rights Reserved. 8
Write Once Run Any Where
© 2016 Mesosphere, Inc. All Rights Reserved. 9
!I can get a shell on it (through SSH or otherwise)
!It "feels" like a VM:
!own process space
!own network interface
!can install packages
!can run services
High level: it appears* like a lightweight VM
© 2016 Mesosphere, Inc. All Rights Reserved. 10
!It's not like a VM:
uses the host kernel

can't boot a different OS
!It's just a bunch of processes visible on the host machine
!(contrast with VMs which are opaque)
Low level: it's actually chroot on steroids
© 2016 Mesosphere, Inc. All Rights Reserved. 11
Containers vs Virtual Machines
© 2016 Mesosphere, Inc. All Rights Reserved. 12
$ ps faux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 33636 2960 ? Ss Oct17 0:00 /sbin/init
...
root 12972 0.0 3.9 757236 40704 ? Ssl 01:55 0:18 /usr/bin/dockerd --raw-logs
root 12981 0.0 0.9 299096 9384 ? Ssl 01:55 0:01 _ docker-containerd -l unix:///var/run/docker/libcontainerd/docker-
root 13850 0.0 0.4 199036 4180 ? Sl 01:58 0:00 _ docker-containerd-shim 2f86cbc34/var/run/docker/l
root 13867 0.0 0.2 31752 2884 ? Ss 01:58 0:00 | _ nginx: master process nginx -g daemon off;
sshd 13889 0.0 0.1 32144 1664 ? S 01:58 0:00 | _ nginx: worker process
root 17642 0.0 0.4 199036 4188 ? Sl 11:54 0:00 _ docker-containerd-shim /var/run/docker/l
root 17661 99.2 0.0 1172 4 ? Rs 11:54 23:37 | _ md5sum /dev/urandom
root 18340 0.0 0.4 199036 4144 ? Sl 12:16 0:00 _ docker-containerd-shim 4121c64749262112b /var/run/docker/l
vagrant 18353 0.0 0.0 1164 4 ? Ss 12:16 0:00 _ sleep 1000
docker run -d nginx:1.10
© 2016 Mesosphere, Inc. All Rights Reserved. 13
!Weaker isolation in containers
!Containers run near-native speed CPU/IO
!Containers launch in around 0.1 second (libcontainer)
!Less storage and memory overhead
Differences between containers and virtual machines
© 2016 Mesosphere, Inc. All Rights Reserved. 14
Isolation
© 2016 Mesosphere, Inc. All Rights Reserved. 15
(LINUX) KERNEL
LAYER FS
CGROUPS NAMESPACES
LIBCONTAINER
DOCKER
© 2016 Mesosphere, Inc. All Rights Reserved. 16
Namespaces provide isolated views:
• pid (processes)
• net (network interfaces, routing...)
• ipc (System V IPC)
• mnt (mount points, filesystems)
• uts (hostname)
• user (UIDs)
Control groups control resources:
• cpu (CPU shares)
• cpuacct
• cpuset (limit processes to a CPU)
• memory (swap, dirty pages)
• blkio (throttle reads/writes)
• devices
• net_cls, net_prio: control packet class and
priority
• freezer
Namespaces VS. Cgroups
© 2016 Mesosphere, Inc. All Rights Reserved. 17
Control Groups
© 2016 Mesosphere, Inc. All Rights Reserved. 18
• /sys/fs/cgroup
• Each subsystem (memory, CPU...) has a hierarchy (tree)
• Each process belongs to exactly 1 node in each hierarchy
• Each hierarchy starts with 1 node (the root)
• Each node = group of processes (sharing the same resources)
Control groups - Generalities
© 2016 Mesosphere, Inc. All Rights Reserved. 19
!Metrics: swap, total rss, # pages in/out
!Keeps track of pages used by each group:
!file (read/write/mmap from block devices)
!anonymous (stack, heap, anonymous mmap)
!active (recently accessed)
!inactive (candidate for eviction)
Memory cgroup: accounting
© 2016 Mesosphere, Inc. All Rights Reserved. 20
•Each group can have hard and soft limits
•Soft limits are not enforced
•Hard limits will trigger a per-group OOM killer
•No OutOfMemoryError
•Limits can be set for physical, kernel, total memory
Memory cgroup: limits
docker run -it --rm -m 128m fedora bash
© 2016 Mesosphere, Inc. All Rights Reserved. 21
!Metrics: cpuacct.stats user | system
!Limitations based on type
!CPU Shares
!CPU Sets
Cpu cgroup
© 2016 Mesosphere, Inc. All Rights Reserved. 22
!Priority Weighting across all the cores
!default value is 1024
CPU Shares
docker run -it --rm -c 512 stress …
© 2016 Mesosphere, Inc. All Rights Reserved. 23
!sudo cgcreate -g cpu:A
!sudo cgcreate -g cpu:B
!cgroup A: sudo cgset -r cpu.shares=768 A 75%
!cgroup B: sudo cgset -r cpu.shares=256 B 25%
CPU Shares
© 2016 Mesosphere, Inc. All Rights Reserved. 24
!Pin groups to specific CPU(s)
!Reserve CPUs for specific apps
!Avoid processes bouncing between CPUs
!Also relevant for NUMA systems
CPU Sets
docker run -it -cpuset=0,4,6 stress
© 2016 Mesosphere, Inc. All Rights Reserved. 25
Namespaces
© 2016 Mesosphere, Inc. All Rights Reserved. 26
!Provide processes with their own view of the system
!Multiple namespaces:
!pid, net, mnt, uts, ipc, user
!Each process is in one namespace of each type
Namespaces
© 2016 Mesosphere, Inc. All Rights Reserved. 27
!Processes within a PID namespace only see processes in the same PID
namespace
!Each PID namespace has its own numbering (starting at 1)
!When PID 1 goes away, the whole namespace is killed
Pid namespace
© 2016 Mesosphere, Inc. All Rights Reserved. 28
Lets Talk Java
© 2016 Mesosphere, Inc. All Rights Reserved. 29
!Java Language + Java Specification + Java Runtime
Java
© 2016 Mesosphere, Inc. All Rights Reserved. 30
!Native JRE
!Heap
!Perm / meta
!JIT bytecode
!JNI
!NIO
!Threads
Java Memory Impact
© 2016 Mesosphere, Inc. All Rights Reserved. 31
From Perm to Metaspace
© 2016 Mesosphere, Inc. All Rights Reserved. 32
!JIT compiler threads
!HotSpot thresholds and optimizations
!Sets the default # threads for GC
!Number of thread in the common fork-join pool
!and more…
JRE initializations based on core count
© 2016 Mesosphere, Inc. All Rights Reserved. 33
Bring it together!
© 2016 Mesosphere, Inc. All Rights Reserved. 34
!JDK 7/8 - resources from sysconf
sysconf(_SC_NPROCESSORS_ONLN);
!JDK 9 - sched_getaffinity
!accounts for cpusets
Where Java Gets it’s CPU Information
© 2016 Mesosphere, Inc. All Rights Reserved. 35
!CPUSET
!pin to specific CPUs
!Runtime.getRuntime().availableProcessors(); == # cores assigned*
Java with CPU Set
docker run -ti --cpuset=0,4,6 …
© 2016 Mesosphere, Inc. All Rights Reserved. 36
!CPU Share
!Priority Weighting across all the cores
!Runtime.getRuntime().availableProcessors(); == # cores on node
Java with CPU Share
docker run -ti -c 512 …
© 2016 Mesosphere, Inc. All Rights Reserved. 37
!Land on a 32 core box
!32 cores are seen by the JRE
!32 threads set by default for ForkJoinPool
Java and CPU Shares
© 2016 Mesosphere, Inc. All Rights Reserved. 38
!“But memory constraints are far more problematic and may not even be
queryable in general.
!If there are no API's to tell the VM the real resource story what is the VM
supposed to do? I don't have any answers to that.”
!“When the environment lies to the VM about what is available
it makes it very hard for the VM to try to adjust.”
How about memory?
© 2016 Mesosphere, Inc. All Rights Reserved. 39
!“The good thing about docker containers (and some other like containers) is
that they don’t hide the underlying hardware from processes like VM
technology does.”
!“The bad thing about docker containers (and some other like containers) is that
they don’t hide the underlying hardware from processes like VM technology
does.”
Conclusion
Kirk Pepperdine
© 2016 Mesosphere, Inc. All Rights Reserved. 40
Thank You!
Learn more by visiting dcos.io and mesosphere.com
© 2016 Mesosphere, Inc. All Rights Reserved. 41
!Mar 10 17:42:39 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310
17:42:39.848748  1199 status_update_manager.cpp:824] Checkpointing ACK for status update
TASK_RUNNING (UUID: 8d13fbb9-b02a-45da-9b52-5393ce8f0746) for task
task.datanode.datanode1.1457631756250 of framework d83631ed-34
!Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310
17:42:41.561954  1200 mem.cpp:625] OOM notifier is triggered for container
6461cafd-3962-4022-a070-f6e26488dd94
!Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310
17:42:41.562047  1200 mem.cpp:644] OOM detected for container 6461cafd-3962-4022-a070-
f6e26488dd94
!Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310
17:42:41.566249  1200 mem.cpp:685] Memory limit exceeded: Requested: 2080MB Maximum
Used: 2080MB
journalctl -f _TRANSPORT=kernel

Weitere ähnliche Inhalte

Was ist angesagt?

Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Ron Munitz
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsAlex Matrosov
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesSean Chittenden
 
RabbitMQ Server - cheat sheet -
RabbitMQ Server - cheat sheet -RabbitMQ Server - cheat sheet -
RabbitMQ Server - cheat sheet -Naoto MATSUMOTO
 
How to twist a IPv6 over Bluetooth (6lowpan)
How to twist a IPv6 over Bluetooth (6lowpan) How to twist a IPv6 over Bluetooth (6lowpan)
How to twist a IPv6 over Bluetooth (6lowpan) Naoto MATSUMOTO
 
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStackTechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStackNaoto Gohko
 
Kernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyoneKernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyoneAnne Nicolas
 
Linux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLinux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLubomir Rintel
 
Cassandra on Ubuntu AUTOMATIC Install
Cassandra on Ubuntu AUTOMATIC InstallCassandra on Ubuntu AUTOMATIC Install
Cassandra on Ubuntu AUTOMATIC InstallVictor Anjos
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
 
How to install OpenStack MITAKA --allinone - cheat sheet -
How to install OpenStack MITAKA --allinone - cheat sheet -How to install OpenStack MITAKA --allinone - cheat sheet -
How to install OpenStack MITAKA --allinone - cheat sheet -Naoto MATSUMOTO
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisBuland Singh
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux ContainersKirill Kolyshkin
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel CrashdumpMarian Marinov
 
OSMC 2018 | It’s all about the… containers! by Claudio Kuenzler
OSMC 2018 | It’s all about the… containers! by Claudio KuenzlerOSMC 2018 | It’s all about the… containers! by Claudio Kuenzler
OSMC 2018 | It’s all about the… containers! by Claudio KuenzlerNETWAYS
 
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 ServerExperiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 ServerJomaSoft
 

Was ist angesagt? (20)

Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
 
Defeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode RootkitsDefeating x64: Modern Trends of Kernel-Mode Rootkits
Defeating x64: Modern Trends of Kernel-Mode Rootkits
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practices
 
RabbitMQ Server - cheat sheet -
RabbitMQ Server - cheat sheet -RabbitMQ Server - cheat sheet -
RabbitMQ Server - cheat sheet -
 
How to twist a IPv6 over Bluetooth (6lowpan)
How to twist a IPv6 over Bluetooth (6lowpan) How to twist a IPv6 over Bluetooth (6lowpan)
How to twist a IPv6 over Bluetooth (6lowpan)
 
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStackTechOYAJI 2014 tokyo summer LT;  CentOS7 and RDO Icehouse OpenStack
TechOYAJI 2014 tokyo summer LT; CentOS7 and RDO Icehouse OpenStack
 
Kernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyoneKernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyone
 
Linux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshopLinux Kernel Debugging Essentials workshop
Linux Kernel Debugging Essentials workshop
 
Cassandra on Ubuntu AUTOMATIC Install
Cassandra on Ubuntu AUTOMATIC InstallCassandra on Ubuntu AUTOMATIC Install
Cassandra on Ubuntu AUTOMATIC Install
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
 
How to install OpenStack MITAKA --allinone - cheat sheet -
How to install OpenStack MITAKA --allinone - cheat sheet -How to install OpenStack MITAKA --allinone - cheat sheet -
How to install OpenStack MITAKA --allinone - cheat sheet -
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysis
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux Containers
 
NetBSDworkshop
NetBSDworkshopNetBSDworkshop
NetBSDworkshop
 
unix-rosetta
unix-rosettaunix-rosetta
unix-rosetta
 
Storage
StorageStorage
Storage
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
 
OSMC 2018 | It’s all about the… containers! by Claudio Kuenzler
OSMC 2018 | It’s all about the… containers! by Claudio KuenzlerOSMC 2018 | It’s all about the… containers! by Claudio Kuenzler
OSMC 2018 | It’s all about the… containers! by Claudio Kuenzler
 
Init of Android
Init of AndroidInit of Android
Init of Android
 
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 ServerExperiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 Server
 

Ähnlich wie DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer

Spark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg SchadSpark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg SchadSpark Summit
 
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017Codemotion
 
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...Spark Summit
 
Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Yoshinori Matsunobu
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
Linux High Availability Overview - openSUSE.Asia Summit 2015
Linux High Availability Overview - openSUSE.Asia Summit 2015 Linux High Availability Overview - openSUSE.Asia Summit 2015
Linux High Availability Overview - openSUSE.Asia Summit 2015 Roger Zhou 周志强
 
Webinar: Nightmares of a Container Orchestration System - Jorg Schad
Webinar: Nightmares of a Container Orchestration System - Jorg SchadWebinar: Nightmares of a Container Orchestration System - Jorg Schad
Webinar: Nightmares of a Container Orchestration System - Jorg SchadCodemotion
 
Webinar - Nightmares of a Container Orchestration System - Jorg Schad
Webinar - Nightmares of a Container Orchestration System - Jorg SchadWebinar - Nightmares of a Container Orchestration System - Jorg Schad
Webinar - Nightmares of a Container Orchestration System - Jorg SchadCodemotion
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQJérôme Petazzoni
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devTomek Borek
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Jérôme Petazzoni
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xrkr10
 
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg Schad
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg SchadSmack Stack and Beyond—Building Fast Data Pipelines with Jorg Schad
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg SchadSpark Summit
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Red Hat Developers
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Chris Aniszczyk
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Codemotion
 
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerOSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerNETWAYS
 

Ähnlich wie DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer (20)

Spark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg SchadSpark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg Schad
 
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017
Jörg Schad - NO ONE PUTS Java IN THE CONTAINER - Codemotion Milan 2017
 
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
 
Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Linux High Availability Overview - openSUSE.Asia Summit 2015
Linux High Availability Overview - openSUSE.Asia Summit 2015 Linux High Availability Overview - openSUSE.Asia Summit 2015
Linux High Availability Overview - openSUSE.Asia Summit 2015
 
Webinar: Nightmares of a Container Orchestration System - Jorg Schad
Webinar: Nightmares of a Container Orchestration System - Jorg SchadWebinar: Nightmares of a Container Orchestration System - Jorg Schad
Webinar: Nightmares of a Container Orchestration System - Jorg Schad
 
Webinar - Nightmares of a Container Orchestration System - Jorg Schad
Webinar - Nightmares of a Container Orchestration System - Jorg SchadWebinar - Nightmares of a Container Orchestration System - Jorg Schad
Webinar - Nightmares of a Container Orchestration System - Jorg Schad
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy dev
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg Schad
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg SchadSmack Stack and Beyond—Building Fast Data Pipelines with Jorg Schad
Smack Stack and Beyond—Building Fast Data Pipelines with Jorg Schad
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
 
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerOSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner Fischer
 

Kürzlich hochgeladen

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Kürzlich hochgeladen (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer

  • 1. © 2016 Mesosphere, Inc. All Rights Reserved. 1 Nobody puts Java in the Container* @joerg_schad
  • 2.
  • 3. © 2016 Mesosphere, Inc. All Rights Reserved. 3
  • 4.
  • 5. © 2016 Mesosphere, Inc. All Rights Reserved. 5 Jörg Schad Distributed Systems Engineer, Mesosphere @joerg_schad
  • 6. © 2016 Mesosphere, Inc. All Rights Reserved. ! Datacenter-wide services to power your apps ! Turnkey installation and lifecycle management 6 DC/OS Universe DC/OS Any Infrastructure ! Container operations & big data operations ! Security, fault tolerance & high availability ! Open Source (ASL2.0) ! Based on Apache Mesos ! Production proven at scale ! Requires only a modern linux distro 
 (windows coming soon) ! Hybrid Datacenter DATACENTER OPERATING SYSTEM (DC/OS) Datacenter Operating System (DC/OS) Distributed Systems Kernel (Mesos) Big Data + Analytics EnginesMicroservices ( containers) Streaming Batch Machine Learning Analytics Functions & Logic Search Time Series SQL / NoSQL Databases Modern App Components Any Infrastructure (Physical, Virtual, Cloud)
  • 8. © 2016 Mesosphere, Inc. All Rights Reserved. 8 Write Once Run Any Where
  • 9. © 2016 Mesosphere, Inc. All Rights Reserved. 9 !I can get a shell on it (through SSH or otherwise) !It "feels" like a VM: !own process space !own network interface !can install packages !can run services High level: it appears* like a lightweight VM
  • 10. © 2016 Mesosphere, Inc. All Rights Reserved. 10 !It's not like a VM: uses the host kernel
 can't boot a different OS !It's just a bunch of processes visible on the host machine !(contrast with VMs which are opaque) Low level: it's actually chroot on steroids
  • 11. © 2016 Mesosphere, Inc. All Rights Reserved. 11 Containers vs Virtual Machines
  • 12. © 2016 Mesosphere, Inc. All Rights Reserved. 12 $ ps faux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 33636 2960 ? Ss Oct17 0:00 /sbin/init ... root 12972 0.0 3.9 757236 40704 ? Ssl 01:55 0:18 /usr/bin/dockerd --raw-logs root 12981 0.0 0.9 299096 9384 ? Ssl 01:55 0:01 _ docker-containerd -l unix:///var/run/docker/libcontainerd/docker- root 13850 0.0 0.4 199036 4180 ? Sl 01:58 0:00 _ docker-containerd-shim 2f86cbc34/var/run/docker/l root 13867 0.0 0.2 31752 2884 ? Ss 01:58 0:00 | _ nginx: master process nginx -g daemon off; sshd 13889 0.0 0.1 32144 1664 ? S 01:58 0:00 | _ nginx: worker process root 17642 0.0 0.4 199036 4188 ? Sl 11:54 0:00 _ docker-containerd-shim /var/run/docker/l root 17661 99.2 0.0 1172 4 ? Rs 11:54 23:37 | _ md5sum /dev/urandom root 18340 0.0 0.4 199036 4144 ? Sl 12:16 0:00 _ docker-containerd-shim 4121c64749262112b /var/run/docker/l vagrant 18353 0.0 0.0 1164 4 ? Ss 12:16 0:00 _ sleep 1000 docker run -d nginx:1.10
  • 13. © 2016 Mesosphere, Inc. All Rights Reserved. 13 !Weaker isolation in containers !Containers run near-native speed CPU/IO !Containers launch in around 0.1 second (libcontainer) !Less storage and memory overhead Differences between containers and virtual machines
  • 14. © 2016 Mesosphere, Inc. All Rights Reserved. 14 Isolation
  • 15. © 2016 Mesosphere, Inc. All Rights Reserved. 15 (LINUX) KERNEL LAYER FS CGROUPS NAMESPACES LIBCONTAINER DOCKER
  • 16. © 2016 Mesosphere, Inc. All Rights Reserved. 16 Namespaces provide isolated views: • pid (processes) • net (network interfaces, routing...) • ipc (System V IPC) • mnt (mount points, filesystems) • uts (hostname) • user (UIDs) Control groups control resources: • cpu (CPU shares) • cpuacct • cpuset (limit processes to a CPU) • memory (swap, dirty pages) • blkio (throttle reads/writes) • devices • net_cls, net_prio: control packet class and priority • freezer Namespaces VS. Cgroups
  • 17. © 2016 Mesosphere, Inc. All Rights Reserved. 17 Control Groups
  • 18. © 2016 Mesosphere, Inc. All Rights Reserved. 18 • /sys/fs/cgroup • Each subsystem (memory, CPU...) has a hierarchy (tree) • Each process belongs to exactly 1 node in each hierarchy • Each hierarchy starts with 1 node (the root) • Each node = group of processes (sharing the same resources) Control groups - Generalities
  • 19. © 2016 Mesosphere, Inc. All Rights Reserved. 19 !Metrics: swap, total rss, # pages in/out !Keeps track of pages used by each group: !file (read/write/mmap from block devices) !anonymous (stack, heap, anonymous mmap) !active (recently accessed) !inactive (candidate for eviction) Memory cgroup: accounting
  • 20. © 2016 Mesosphere, Inc. All Rights Reserved. 20 •Each group can have hard and soft limits •Soft limits are not enforced •Hard limits will trigger a per-group OOM killer •No OutOfMemoryError •Limits can be set for physical, kernel, total memory Memory cgroup: limits docker run -it --rm -m 128m fedora bash
  • 21. © 2016 Mesosphere, Inc. All Rights Reserved. 21 !Metrics: cpuacct.stats user | system !Limitations based on type !CPU Shares !CPU Sets Cpu cgroup
  • 22. © 2016 Mesosphere, Inc. All Rights Reserved. 22 !Priority Weighting across all the cores !default value is 1024 CPU Shares docker run -it --rm -c 512 stress …
  • 23. © 2016 Mesosphere, Inc. All Rights Reserved. 23 !sudo cgcreate -g cpu:A !sudo cgcreate -g cpu:B !cgroup A: sudo cgset -r cpu.shares=768 A 75% !cgroup B: sudo cgset -r cpu.shares=256 B 25% CPU Shares
  • 24. © 2016 Mesosphere, Inc. All Rights Reserved. 24 !Pin groups to specific CPU(s) !Reserve CPUs for specific apps !Avoid processes bouncing between CPUs !Also relevant for NUMA systems CPU Sets docker run -it -cpuset=0,4,6 stress
  • 25. © 2016 Mesosphere, Inc. All Rights Reserved. 25 Namespaces
  • 26. © 2016 Mesosphere, Inc. All Rights Reserved. 26 !Provide processes with their own view of the system !Multiple namespaces: !pid, net, mnt, uts, ipc, user !Each process is in one namespace of each type Namespaces
  • 27. © 2016 Mesosphere, Inc. All Rights Reserved. 27 !Processes within a PID namespace only see processes in the same PID namespace !Each PID namespace has its own numbering (starting at 1) !When PID 1 goes away, the whole namespace is killed Pid namespace
  • 28. © 2016 Mesosphere, Inc. All Rights Reserved. 28 Lets Talk Java
  • 29. © 2016 Mesosphere, Inc. All Rights Reserved. 29 !Java Language + Java Specification + Java Runtime Java
  • 30. © 2016 Mesosphere, Inc. All Rights Reserved. 30 !Native JRE !Heap !Perm / meta !JIT bytecode !JNI !NIO !Threads Java Memory Impact
  • 31. © 2016 Mesosphere, Inc. All Rights Reserved. 31 From Perm to Metaspace
  • 32. © 2016 Mesosphere, Inc. All Rights Reserved. 32 !JIT compiler threads !HotSpot thresholds and optimizations !Sets the default # threads for GC !Number of thread in the common fork-join pool !and more… JRE initializations based on core count
  • 33. © 2016 Mesosphere, Inc. All Rights Reserved. 33 Bring it together!
  • 34. © 2016 Mesosphere, Inc. All Rights Reserved. 34 !JDK 7/8 - resources from sysconf sysconf(_SC_NPROCESSORS_ONLN); !JDK 9 - sched_getaffinity !accounts for cpusets Where Java Gets it’s CPU Information
  • 35. © 2016 Mesosphere, Inc. All Rights Reserved. 35 !CPUSET !pin to specific CPUs !Runtime.getRuntime().availableProcessors(); == # cores assigned* Java with CPU Set docker run -ti --cpuset=0,4,6 …
  • 36. © 2016 Mesosphere, Inc. All Rights Reserved. 36 !CPU Share !Priority Weighting across all the cores !Runtime.getRuntime().availableProcessors(); == # cores on node Java with CPU Share docker run -ti -c 512 …
  • 37. © 2016 Mesosphere, Inc. All Rights Reserved. 37 !Land on a 32 core box !32 cores are seen by the JRE !32 threads set by default for ForkJoinPool Java and CPU Shares
  • 38. © 2016 Mesosphere, Inc. All Rights Reserved. 38 !“But memory constraints are far more problematic and may not even be queryable in general. !If there are no API's to tell the VM the real resource story what is the VM supposed to do? I don't have any answers to that.” !“When the environment lies to the VM about what is available it makes it very hard for the VM to try to adjust.” How about memory?
  • 39. © 2016 Mesosphere, Inc. All Rights Reserved. 39 !“The good thing about docker containers (and some other like containers) is that they don’t hide the underlying hardware from processes like VM technology does.” !“The bad thing about docker containers (and some other like containers) is that they don’t hide the underlying hardware from processes like VM technology does.” Conclusion Kirk Pepperdine
  • 40. © 2016 Mesosphere, Inc. All Rights Reserved. 40 Thank You! Learn more by visiting dcos.io and mesosphere.com
  • 41. © 2016 Mesosphere, Inc. All Rights Reserved. 41 !Mar 10 17:42:39 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310 17:42:39.848748  1199 status_update_manager.cpp:824] Checkpointing ACK for status update TASK_RUNNING (UUID: 8d13fbb9-b02a-45da-9b52-5393ce8f0746) for task task.datanode.datanode1.1457631756250 of framework d83631ed-34 !Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310 17:42:41.561954  1200 mem.cpp:625] OOM notifier is triggered for container 6461cafd-3962-4022-a070-f6e26488dd94 !Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310 17:42:41.562047  1200 mem.cpp:644] OOM detected for container 6461cafd-3962-4022-a070- f6e26488dd94 !Mar 10 17:42:41 ip-10-0-1-114.us-west-2.compute.internal mesos-slave[1190]: I0310 17:42:41.566249  1200 mem.cpp:685] Memory limit exceeded: Requested: 2080MB Maximum Used: 2080MB journalctl -f _TRANSPORT=kernel