SlideShare a Scribd company logo
Michael Dawson
October 2015
Leveraging Java Optimizations
to Improve Density in Cloud
Environments
About Michael Dawson
Loves the web and building software
2
Senior Software Developer @ IBM
23 years development experience
11 years in runtime development
Contact me:
Michael_dawson@ca.ibm.com
Twitter: @mhdawson1
https://www.linkedin.com/pub/michael-dawson/2/128/605
3
• Motivation
• Shared Classes
• Cloud Environments
• Docker
• Cloud Foundry
• Leveraging SC in Cloud
Agenda
4
• Startup affects customers
•- Restart
•- Scale out
• Footprint affects cost
• Lots of small apps
Motivation
IBM SDK for Java
java -Xshareclasses:name=myHelloApp -jar
5
Shared Classes
No -Xshareclasses -Xshareclasses(1st run) -Xshareclasses
0
200
400
600
800
1000
1200
1400
1600
Java 70 Tomcat Startup
Linux x86_64
Time(ms)
Faster Startup Smaller Footprint
6
Shared Classes
• What
• Read only part of Class
• Class File Bytes
• String De-duplication
• Jit Data (AOT)
• Class Debug Data (separate)
• How
• SysV Shared Memory (e.g. on z/OS)
• POSIX mmap (e.g. on Linux and AIX)
• CreateFileMapping (e.g. on Windows)
7
Shared Classes – Faster Startup
• Classloading Time
• Read from disk
• Parse
• Create in-memory representation
• JIT artifacts
• Methods initially run interpreted
• 1000’s of methods are JIT compiled
• Start-up methods same run to run
• Why compile over and over ?
• Metadata to guide compilation
8
Shared Classes – Lower Footprint
Heap
Object Instances
(e.g. tmp)
JIT
Code & Data Cache
Shared Class Data
Byte Codes
(e.g. MyObject)
JVM Process Memory
Heap
Object Instances
(e.g. tmp)
JIT
Code & Data Cache
Shared Class Data
Byte Codes
(e.g. MyObject)
JVM Process Memory
Shared Class Data
Byte Codes
(e.g. MyObject)
9
Cloud Environments
Bare Metal
Virtual Machines
Docker
PaaS
10
Cloud Environments – Bare Metal
Multiple Apps Common
Shared storage and memory
Shared Classes works by default
A
P
P
1
A
P
P
N
Faster Startup
Lower Footprint
11
Cloud Environments – Virtual Machine
Smaller deployment units (+)
Memory not shared across VMs
Storage not shared across VMs
A
P
P
1
A
P
P
N
VM1 VMn
Shared Classes – Reduced Effectiveness
Faster Startup
Lower Footprint
12
Cloud Environments - Docker
Base OS
(ex Ubuntu 14)
Middleware
Application
Application
https://hub.docker.com/_/websphere-liberty/
https://hub.docker.com/_/ubuntu/
A
P
P
1
A
P
P
N
CONT1 CONTn
Middleware
Base OS
Images
Application
State1 Staten
Containers
13
Cloud Environments – Docker Demo
Docker images
Docker ps
Start/stop show state not preserved
14
Cloud Environments – Docker
Even smaller deployment units (++)
Memory not shared across VMs
Storage not persistent
A
P
P
1
A
P
P
N
CONT1 CONTn
Shared Classes – Reduced Effectiveness
Faster Startup
Lower Footprint
15
Cloud Environments – PaaS – Cloud Foundry
Staging -> buildpack creates Droplet
Start or Scale
Droplet to DEA, Extract Droplet
Warden with droplet contents
Droplet size affects push/startup times
16
Cloud Environments – Cloud Foundry
17
Cloud Environments – PaaS
Even smaller deployment units (+++)
Memory not shared across VMs
Storage not persistent
A
P
P
1
A
P
P
N
Warden1
Shared Classes – Reduced Effectiveness
Faster Startup
Lower Footprint
WardenN
18
Cloud Environments – What’s different
Persistent
Storage
Shared
Storage
Shared
Memory
Bare Metal X X X
Virtual
Machines
X
Docker
PaaS
19
Cloud Environments – What can we do ?
Start-up
Persistent Storage ->Generate Dynamically
Add cache sharing mechanism
Shared storage
Cache server
Bundle pre-built cache
Populate through warm up
Extra disk footprint
20
Cloud Environments – What can we do ?
Footprint
Transparent Page sharing at OS
Bundled pre-built cache
Cache sharing mechanism
Guided build
Share Memory across containers/wardens
V
i
r
t
1
V
i
r
t
2
V
i
r
t
N
p
h
y
s
21
Cloud Environments – Virtual Machines
 Persistent storage – Startup benefit by default
 Memory - build Cache to Enable sharing through TPS
Pre-created, bundled or cache server
Guide creation to end up with same result
 To read more:
http://www.computer.org/csdl/proceedings/ispass/2013/5
776/00/06557144.pdf
22
Cloud Environments - Docker
Startup – shared cache pre-built (read-only)
Footprint – Share memory across container !
Shared Cache disk file from shared layer
Memory mapping results in shared memory
Validated through lsof and /proc/pid/smaps
23
Cloud Environments - Docker
A
P
P
1
A
P
P
N
CONT1 CONTn
Liberty, JVM, Cache
Base OS
Application
State1 Staten
In Memory cache !!
 Middleware Image with:
 JVM
 Liberty
 Pre-built Shared
Cache
 Cache Read-only
 File system back end
with right properties (ex
aufs)
24
1 2 3 4 5 6 7 8 9 10
0
200
400
600
800
1000
1200
1400
Used Memory
(PSS)
Share
NoShare
NoShareNoCache
Cloud Environments – Docker
1 2 3 4 5 6 7 8 9 10
0
5
10
15
20
25
Startup Times
Share
NoShare
NoShareNoCache
Share: Shared cache pre-created and including in base layer –
-Xshareclasses:cacheDir=/usr/lib/liberty-java/caches,name=cache1,enableBCI
NoShare: cached created dynamically -Xshareclasses
NoShareNoCache: No cache -Xshareclasses:none
Faster Startup
Lower Footprint
25
Cloud Environments – Cloud Foundry
 Experimented with 2 optimizations so far
 Share memory across wardens
 Requires changes to CF installation
 Cache server
 Joint work with CAS Atlantic
http://www.unb.ca/research/casatlantic/index.html
 Panagiotis Patros, Kenneth Kent
26
Cloud Environments – Cloud Foundry – Share Memory
 JVM, Liberty Cashed installed on DEA
 Mapping options
 Same File available in all Wardens
 Memory map of same file -> shared memory across Wardens
 R/O due to security concerns
- src_path: /var/vcap/packages/ibmjvm64
dst_path: /tmp/jvms/ibmjvm64
mode: ro
src_path: /var/vcap/packages/ibmClassCaches
dst_path: /tmp/jvms/ibmClassCaches
mode: ro
- src_path: /var/vcap/packages/liberty
dst_path: /tmp/liberty
mode: ro
27
Cloud Environments – Cloud Foundry – Share Memory
0
2
4
6
8
10
12
14
16
18
20
No Sharing Sharing Libraries Sharing Libraries and
Cache
Start times (seconds)
0
20
40
60
80
100
120
140
160
180
200
No Sharing Sharing Libraries Sharing Libraries and
Cache
Resident Set Size (MB)
Faster Startup
Lower Footprint
28
 Deployed as Bluemix App
 No changes to CF Infrastructure
 Cache Created Dynamically
 Zeroth instance creates cache
 Restage after cache creation
 Cache bundled into droplet
 Avoids “pull time”
 Avoids manual cache creation
 Extended to other artifacts (JSP precompile)
Cloud Environments – Cloud Foundry – Cache Server
Java one   2015 - v1
The DCAS technique brings the second (scaled) instance up faster
DCAS speedup over default is 1.37: around 3 seconds faster
Request to restart at 120s
Restarts happen when a new service is installed
DCAS brings up the server online faster
The DCAS technique brings the second (restarted) instance up faster
DCAS speedup over default is again 1.37: around 4 seconds faster
33
Questions
Copyrights and Trademarks
© IBM Corporation 2015. All Rights Reserved
IBM, the IBM logo, ibm.com are trademarks or registered
trademarks of International Business Machines Corp.,
registered in many jurisdictions worldwide. Other product and
service names might be trademarks of IBM or other companies.
A current list of IBM trademarks is available on the Web at
“Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml
Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally
related to or endorsed by the official Joyent Node.js open source or
commercial project.
Java, JavaScript and all Java-based trademarks and logos are trademarks or
registered trademarks of Oracle and/or its affiliates.

More Related Content

PDF
Introduction to Docker storage, volume and image
ejlp12
 
PDF
[NYC Meetup] Docker at Nuxeo
Nuxeo
 
PDF
Aplura virtualization slides
The Linux Foundation
 
PDF
Running the Oracle SOA Suite Environment in a Docker Container
Guido Schmutz
 
PDF
Docker volume
MyoungSu Shin
 
PPTX
The HaLVM: A Simple Platform for Simple Platforms
The Linux Foundation
 
PDF
Scaling Xen within Rackspace Cloud Servers
The Linux Foundation
 
PDF
Unikernels: Rise of the Library Hypervisor
Anil Madhavapeddy
 
Introduction to Docker storage, volume and image
ejlp12
 
[NYC Meetup] Docker at Nuxeo
Nuxeo
 
Aplura virtualization slides
The Linux Foundation
 
Running the Oracle SOA Suite Environment in a Docker Container
Guido Schmutz
 
Docker volume
MyoungSu Shin
 
The HaLVM: A Simple Platform for Simple Platforms
The Linux Foundation
 
Scaling Xen within Rackspace Cloud Servers
The Linux Foundation
 
Unikernels: Rise of the Library Hypervisor
Anil Madhavapeddy
 

What's hot (20)

PPTX
Introduction to automated environment management with Docker Containers - for...
Lucas Jellema
 
PPTX
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
Tim Mackey
 
PPTX
Server 2016 sneak peek
Michael Rüefli
 
PDF
Xen time machine
The Linux Foundation
 
PDF
Introduction to docker
Hiroki Endo
 
PDF
Advanced Docker Developer Workflows on MacOS X and Windows
Anil Madhavapeddy
 
PDF
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
The Linux Foundation
 
PDF
Xen @ Google, 2011
The Linux Foundation
 
ODP
Docker on Power Systems
Cesar Maciel
 
PDF
3 Dia Livre - Implementando Nuvens Privadas com XCP 1.1
Lorscheider Santiago
 
PDF
Xen ATG case study
The Linux Foundation
 
PDF
Palestra Técnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Lorscheider Santiago
 
PDF
Performance Benchmarking of Clouds Evaluating OpenStack
Pradeep Kumar
 
PPTX
Introduction to the xen cloud platform - xcp
Lorscheider Santiago
 
PDF
BSDcon Asia 2015: Xen on FreeBSD
The Linux Foundation
 
PPTX
BACD July 2012 : The Xen Cloud Platform
The Linux Foundation
 
PDF
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
The Linux Foundation
 
PDF
Docker Architecture (v1.3)
rajdeep
 
PDF
Cloud Computing Hypervisors and Comparison Xen KVM
cloudresearcher
 
ODP
S4 xen hypervisor_20080622
Todd Deshane
 
Introduction to automated environment management with Docker Containers - for...
Lucas Jellema
 
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
Tim Mackey
 
Server 2016 sneak peek
Michael Rüefli
 
Xen time machine
The Linux Foundation
 
Introduction to docker
Hiroki Endo
 
Advanced Docker Developer Workflows on MacOS X and Windows
Anil Madhavapeddy
 
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
The Linux Foundation
 
Xen @ Google, 2011
The Linux Foundation
 
Docker on Power Systems
Cesar Maciel
 
3 Dia Livre - Implementando Nuvens Privadas com XCP 1.1
Lorscheider Santiago
 
Xen ATG case study
The Linux Foundation
 
Palestra Técnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Lorscheider Santiago
 
Performance Benchmarking of Clouds Evaluating OpenStack
Pradeep Kumar
 
Introduction to the xen cloud platform - xcp
Lorscheider Santiago
 
BSDcon Asia 2015: Xen on FreeBSD
The Linux Foundation
 
BACD July 2012 : The Xen Cloud Platform
The Linux Foundation
 
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
The Linux Foundation
 
Docker Architecture (v1.3)
rajdeep
 
Cloud Computing Hypervisors and Comparison Xen KVM
cloudresearcher
 
S4 xen hypervisor_20080622
Todd Deshane
 
Ad

Similar to Java one 2015 - v1 (20)

PDF
The App Evolution
Dev_Events
 
PPTX
The App Evolution
Dev_Events
 
PPTX
App Development Evolution: What has changed?
Paula Peña (She, Her, Hers)
 
PPTX
App Development Evolution: What has changed?
Dev_Events
 
PPTX
Are you ready for cloud-native Java?
Graham Charters
 
PDF
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Jack-Junjie Cai
 
PPTX
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
David Currie
 
PDF
Roadmap to the Clouds - How to Easily Migrate to the Cloud Platform Using WSO...
WSO2
 
PPTX
fiu-cloud-hackathon-lec1-v6
Kirill Osipov
 
PDF
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld
 
PPT
IBM Open Cloud Update XCITE Fall 2014
Christopher Ferris
 
PPTX
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
WSO2
 
PPT
IBM Bluemix Talk at University College Cork (UCC)
Sanjay Nayak
 
PPTX
Cloud adoption patterns
Kyle Brown
 
PPTX
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
PDF
Cloud Computing: Making the right choice
IndicThreads
 
PPT
Java Development on Bluemix
Ram Vennam
 
PPTX
Cloud adoption patterns April 11 2016
Kyle Brown
 
PPTX
The App Evolution Continues
Paula Peña (She, Her, Hers)
 
PDF
Kubernetes & Co, beyond the hype
Alexandre Touret
 
The App Evolution
Dev_Events
 
The App Evolution
Dev_Events
 
App Development Evolution: What has changed?
Paula Peña (She, Her, Hers)
 
App Development Evolution: What has changed?
Dev_Events
 
Are you ready for cloud-native Java?
Graham Charters
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Jack-Junjie Cai
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
David Currie
 
Roadmap to the Clouds - How to Easily Migrate to the Cloud Platform Using WSO...
WSO2
 
fiu-cloud-hackathon-lec1-v6
Kirill Osipov
 
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld
 
IBM Open Cloud Update XCITE Fall 2014
Christopher Ferris
 
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
WSO2
 
IBM Bluemix Talk at University College Cork (UCC)
Sanjay Nayak
 
Cloud adoption patterns
Kyle Brown
 
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
Cloud Computing: Making the right choice
IndicThreads
 
Java Development on Bluemix
Ram Vennam
 
Cloud adoption patterns April 11 2016
Kyle Brown
 
The App Evolution Continues
Paula Peña (She, Her, Hers)
 
Kubernetes & Co, beyond the hype
Alexandre Touret
 
Ad

More from Michael Dawson (18)

PDF
Index 2018 talk to your code
Michael Dawson
 
PDF
Index 2018 node.js what's next
Michael Dawson
 
PPTX
N api - node interactive 2017
Michael Dawson
 
PDF
N api-node summit-2017-final
Michael Dawson
 
PDF
Accelerate your digital transformation
Michael Dawson
 
PDF
Ask us anything v9
Michael Dawson
 
PDF
Node.js Community Benchmarking WG update
Michael Dawson
 
PDF
Cascon intro
Michael Dawson
 
PDF
A294 fips support in node
Michael Dawson
 
PDF
A295 nodejs-knowledge-accelerator
Michael Dawson
 
PDF
A301 ctu madrid2016-monitoring
Michael Dawson
 
PDF
Post mortem talk - Node Interactive EU
Michael Dawson
 
PDF
Update from-build-workgroup
Michael Dawson
 
PDF
Node fips
Michael Dawson
 
PDF
Micro app-framework - NodeLive Boston
Michael Dawson
 
PDF
Node liveboston welcome
Michael Dawson
 
PDF
Micro app-framework
Michael Dawson
 
PDF
Node home automation with Node.js and MQTT
Michael Dawson
 
Index 2018 talk to your code
Michael Dawson
 
Index 2018 node.js what's next
Michael Dawson
 
N api - node interactive 2017
Michael Dawson
 
N api-node summit-2017-final
Michael Dawson
 
Accelerate your digital transformation
Michael Dawson
 
Ask us anything v9
Michael Dawson
 
Node.js Community Benchmarking WG update
Michael Dawson
 
Cascon intro
Michael Dawson
 
A294 fips support in node
Michael Dawson
 
A295 nodejs-knowledge-accelerator
Michael Dawson
 
A301 ctu madrid2016-monitoring
Michael Dawson
 
Post mortem talk - Node Interactive EU
Michael Dawson
 
Update from-build-workgroup
Michael Dawson
 
Node fips
Michael Dawson
 
Micro app-framework - NodeLive Boston
Michael Dawson
 
Node liveboston welcome
Michael Dawson
 
Micro app-framework
Michael Dawson
 
Node home automation with Node.js and MQTT
Michael Dawson
 

Recently uploaded (20)

PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Doc9.....................................
SofiaCollazos
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 

Java one 2015 - v1

  • 1. Michael Dawson October 2015 Leveraging Java Optimizations to Improve Density in Cloud Environments
  • 2. About Michael Dawson Loves the web and building software 2 Senior Software Developer @ IBM 23 years development experience 11 years in runtime development Contact me: [email protected] Twitter: @mhdawson1 https://www.linkedin.com/pub/michael-dawson/2/128/605
  • 3. 3 • Motivation • Shared Classes • Cloud Environments • Docker • Cloud Foundry • Leveraging SC in Cloud Agenda
  • 4. 4 • Startup affects customers •- Restart •- Scale out • Footprint affects cost • Lots of small apps Motivation
  • 5. IBM SDK for Java java -Xshareclasses:name=myHelloApp -jar 5 Shared Classes No -Xshareclasses -Xshareclasses(1st run) -Xshareclasses 0 200 400 600 800 1000 1200 1400 1600 Java 70 Tomcat Startup Linux x86_64 Time(ms) Faster Startup Smaller Footprint
  • 6. 6 Shared Classes • What • Read only part of Class • Class File Bytes • String De-duplication • Jit Data (AOT) • Class Debug Data (separate) • How • SysV Shared Memory (e.g. on z/OS) • POSIX mmap (e.g. on Linux and AIX) • CreateFileMapping (e.g. on Windows)
  • 7. 7 Shared Classes – Faster Startup • Classloading Time • Read from disk • Parse • Create in-memory representation • JIT artifacts • Methods initially run interpreted • 1000’s of methods are JIT compiled • Start-up methods same run to run • Why compile over and over ? • Metadata to guide compilation
  • 8. 8 Shared Classes – Lower Footprint Heap Object Instances (e.g. tmp) JIT Code & Data Cache Shared Class Data Byte Codes (e.g. MyObject) JVM Process Memory Heap Object Instances (e.g. tmp) JIT Code & Data Cache Shared Class Data Byte Codes (e.g. MyObject) JVM Process Memory Shared Class Data Byte Codes (e.g. MyObject)
  • 10. 10 Cloud Environments – Bare Metal Multiple Apps Common Shared storage and memory Shared Classes works by default A P P 1 A P P N Faster Startup Lower Footprint
  • 11. 11 Cloud Environments – Virtual Machine Smaller deployment units (+) Memory not shared across VMs Storage not shared across VMs A P P 1 A P P N VM1 VMn Shared Classes – Reduced Effectiveness Faster Startup Lower Footprint
  • 12. 12 Cloud Environments - Docker Base OS (ex Ubuntu 14) Middleware Application Application https://hub.docker.com/_/websphere-liberty/ https://hub.docker.com/_/ubuntu/ A P P 1 A P P N CONT1 CONTn Middleware Base OS Images Application State1 Staten Containers
  • 13. 13 Cloud Environments – Docker Demo Docker images Docker ps Start/stop show state not preserved
  • 14. 14 Cloud Environments – Docker Even smaller deployment units (++) Memory not shared across VMs Storage not persistent A P P 1 A P P N CONT1 CONTn Shared Classes – Reduced Effectiveness Faster Startup Lower Footprint
  • 15. 15 Cloud Environments – PaaS – Cloud Foundry Staging -> buildpack creates Droplet Start or Scale Droplet to DEA, Extract Droplet Warden with droplet contents Droplet size affects push/startup times
  • 16. 16 Cloud Environments – Cloud Foundry
  • 17. 17 Cloud Environments – PaaS Even smaller deployment units (+++) Memory not shared across VMs Storage not persistent A P P 1 A P P N Warden1 Shared Classes – Reduced Effectiveness Faster Startup Lower Footprint WardenN
  • 18. 18 Cloud Environments – What’s different Persistent Storage Shared Storage Shared Memory Bare Metal X X X Virtual Machines X Docker PaaS
  • 19. 19 Cloud Environments – What can we do ? Start-up Persistent Storage ->Generate Dynamically Add cache sharing mechanism Shared storage Cache server Bundle pre-built cache Populate through warm up Extra disk footprint
  • 20. 20 Cloud Environments – What can we do ? Footprint Transparent Page sharing at OS Bundled pre-built cache Cache sharing mechanism Guided build Share Memory across containers/wardens V i r t 1 V i r t 2 V i r t N p h y s
  • 21. 21 Cloud Environments – Virtual Machines  Persistent storage – Startup benefit by default  Memory - build Cache to Enable sharing through TPS Pre-created, bundled or cache server Guide creation to end up with same result  To read more: http://www.computer.org/csdl/proceedings/ispass/2013/5 776/00/06557144.pdf
  • 22. 22 Cloud Environments - Docker Startup – shared cache pre-built (read-only) Footprint – Share memory across container ! Shared Cache disk file from shared layer Memory mapping results in shared memory Validated through lsof and /proc/pid/smaps
  • 23. 23 Cloud Environments - Docker A P P 1 A P P N CONT1 CONTn Liberty, JVM, Cache Base OS Application State1 Staten In Memory cache !!  Middleware Image with:  JVM  Liberty  Pre-built Shared Cache  Cache Read-only  File system back end with right properties (ex aufs)
  • 24. 24 1 2 3 4 5 6 7 8 9 10 0 200 400 600 800 1000 1200 1400 Used Memory (PSS) Share NoShare NoShareNoCache Cloud Environments – Docker 1 2 3 4 5 6 7 8 9 10 0 5 10 15 20 25 Startup Times Share NoShare NoShareNoCache Share: Shared cache pre-created and including in base layer – -Xshareclasses:cacheDir=/usr/lib/liberty-java/caches,name=cache1,enableBCI NoShare: cached created dynamically -Xshareclasses NoShareNoCache: No cache -Xshareclasses:none Faster Startup Lower Footprint
  • 25. 25 Cloud Environments – Cloud Foundry  Experimented with 2 optimizations so far  Share memory across wardens  Requires changes to CF installation  Cache server  Joint work with CAS Atlantic http://www.unb.ca/research/casatlantic/index.html  Panagiotis Patros, Kenneth Kent
  • 26. 26 Cloud Environments – Cloud Foundry – Share Memory  JVM, Liberty Cashed installed on DEA  Mapping options  Same File available in all Wardens  Memory map of same file -> shared memory across Wardens  R/O due to security concerns - src_path: /var/vcap/packages/ibmjvm64 dst_path: /tmp/jvms/ibmjvm64 mode: ro src_path: /var/vcap/packages/ibmClassCaches dst_path: /tmp/jvms/ibmClassCaches mode: ro - src_path: /var/vcap/packages/liberty dst_path: /tmp/liberty mode: ro
  • 27. 27 Cloud Environments – Cloud Foundry – Share Memory 0 2 4 6 8 10 12 14 16 18 20 No Sharing Sharing Libraries Sharing Libraries and Cache Start times (seconds) 0 20 40 60 80 100 120 140 160 180 200 No Sharing Sharing Libraries Sharing Libraries and Cache Resident Set Size (MB) Faster Startup Lower Footprint
  • 28. 28  Deployed as Bluemix App  No changes to CF Infrastructure  Cache Created Dynamically  Zeroth instance creates cache  Restage after cache creation  Cache bundled into droplet  Avoids “pull time”  Avoids manual cache creation  Extended to other artifacts (JSP precompile) Cloud Environments – Cloud Foundry – Cache Server
  • 30. The DCAS technique brings the second (scaled) instance up faster DCAS speedup over default is 1.37: around 3 seconds faster
  • 31. Request to restart at 120s Restarts happen when a new service is installed DCAS brings up the server online faster
  • 32. The DCAS technique brings the second (restarted) instance up faster DCAS speedup over default is again 1.37: around 4 seconds faster
  • 34. Copyrights and Trademarks © IBM Corporation 2015. All Rights Reserved IBM, the IBM logo, ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. Java, JavaScript and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.