SlideShare a Scribd company logo
1 of 17
Download to read offline
Who	
  Is	
  This	
  Guy?	
  
  Will	
  Iverson	
  
     wiverson@nukio.com	
  
     Check	
  www.nukio.com	
  for	
  LinkedIn,	
  Twitter,	
  etc.	
  

  Java	
  since	
  1995	
  
     Pascal/C/C++	
  before	
  that…	
  
     Apple,	
  Symantec,	
  Sun,	
  BEA…	
  

  Four	
  books	
  on	
  Java	
  
     Hibernate,	
  Web	
  Services,	
  Mac	
  OS	
  X	
  Java,	
  Jakarta	
  Commons	
  

  Today:	
  Architect,	
  Consultant,	
  Manager,	
  Coach	
  
     All	
  Star	
  Directories	
  
     Nukio	
  
The	
  Setup	
  
  IT	
  has	
  dead	
  bodies	
  

  What	
  happened…	
  and	
  next	
  steps?	
  
Finding	
  Bodies	
  
  Profiler?	
  

  Heap	
  dumps	
  

  Thread	
  dumps	
  
    Stack	
  traces	
  
 Getting	
  Heap	
  Dumps	
  
  Built-­‐in	
  Executables	
  (available	
  in	
  prod)	
  
       java	
  (VM	
  flag,	
  dump	
  on	
  OOM)	
  
       jmap	
  
       jconsole	
  (JMX)	
  
       jvisualvm	
  

  All	
  profilers	
  
     YourKit,	
  NetBeans,	
  Eclipse,	
  JProbe	
  
     Only	
  available	
  in	
  dev	
  
Getting	
  Thread	
  Dumps	
  
  Built-­‐in	
  Executables	
  (available	
  in	
  prod)	
  
     jstack	
  
     jconsole	
  
     Jvisualvm	
  

  All	
  profilers	
  
     Only	
  available	
  in	
  dev	
  
Beat	
  Patrol	
  
  Get	
  to	
  know	
  the	
  neighborhood	
  when	
  nothing	
  	
  is	
  
   going	
  on…	
  
     Heap	
  
     Thread	
  Dump	
  
     Profilers	
  (CPU)	
  
Cases	
  
  Memory	
  Problem	
  #1	
  

  Memory	
  Problem	
  #2	
  

  Thread	
  Dump	
  #1	
  
  Thread	
  Dump	
  #2	
  

  Thread	
  Dump	
  #3	
  

  Memory	
  Problem	
  #3	
  
What	
  about	
  Serial	
  Killers?	
  
  Really	
  unique,	
  horrible	
  things	
  
     Strange	
  deadlocks	
  
     JVM	
  bugs	
  
     Driver	
  bugs	
  

  Avoid	
  Dark	
  Alleys	
  
     Don’t	
  write	
  threading	
  code	
  unless	
  you	
  need	
  to…	
  
         …and	
  you	
  probably	
  don’t	
  need	
  to.	
  
         Tip:	
  try	
  an	
  in	
  memory	
  database	
  (HSQLDB	
  or	
  db40)	
  
     Stateless,	
  parallel	
  operations	
  
         KISS	
  
     More	
  in	
  futures	
  section	
  
Reconstructing	
  Crimes	
  
  jstack	
  

  jmap	
  (ha!)	
  

  Attach	
  with	
  Visual	
  VM	
  
  Attach	
  with	
  jconsole	
  

  Use	
  Profilers	
  (skip	
  jhat)	
  
     Cheap,	
  powerful	
  
Most	
  Normal	
  Web	
  Apps	
  
  Problem	
  is	
  with	
  db/JVM	
  interaction,	
  not	
  JVM	
  
  Solution?	
  
        P6spy	
  
        JDBC	
  Driver	
  Shim	
  
        Records	
  database	
  interaction	
  
        Review	
  in	
  Excel	
  or	
  with	
  Iron	
  tools	
  
           http://www.cascadetg.com/hibernate/	
  


  Fit	
  to	
  target	
  
      Yes,	
  I	
  know	
  your	
  1,000,000	
  TPS	
  billing	
  system	
  required	
  
       instruction	
  counting…	
  and	
  you	
  wound	
  up	
  sending	
  it	
  out	
  for	
  
       an	
  ASIC,	
  etc	
  etc	
  etc…	
  
Tips	
  
  Single	
  user	
  on	
  dev	
  is	
  a	
  nice	
  starting	
  spot,	
  but	
  starve	
  
   your	
  resources.	
  	
  Allocate	
  min	
  to	
  server.	
  	
  
     Should	
  still	
  be	
  fast	
  as	
  all	
  heck.	
  
     Memory	
  or	
  CPU	
  on	
  a	
  single	
  page	
  out	
  of	
  bounds	
  =	
  total	
  
      nightmare	
  on	
  server…	
  think	
  about	
  all	
  other	
  requests	
  
      coming	
  in.	
  

  Know	
  your	
  targets	
  
     Establish	
  a	
  baseline	
  and	
  a	
  simple	
  scorecard	
  

  Know	
  your	
  database	
  
     All	
  mainstream	
  databases	
  have	
  great	
  tools	
  
Finding	
  the	
  Future	
  
  Stateless	
  Services	
  
    e.g.	
  Spring	
  MVC,	
  REST	
  
    Avoid	
  Sessions	
  &	
  Wizards	
  
        Shopping	
  cart…	
  that	
  stays	
  around	
  forever?	
  

  Key/Value	
  Datastores	
  
    BigTable,	
  MongoDB,	
  Amazon	
  S3	
  
    Easy:	
  play	
  with	
  today	
  for	
  free	
  using	
  Google	
  AppEngine	
  

  Enhance	
  Your	
  Platform	
  
    Track	
  CPU/Memory	
  Usage	
  for	
  Page	
  Views	
  
    Response	
  times	
  +	
  browser	
  rendering	
  
Tip:	
  Better	
  to	
  NOT	
  find	
  in	
  
                 Production	
  
  Solution:	
  Solid	
  Automated	
  Tests,	
  Good	
  Perf	
  
   Environment	
  

  “Can’t	
  afford	
  to	
  automate”	
  
     “Can’t	
  afford	
  to	
  ship”	
  
Shameless	
  Plug	
  
  Agile	
  Testing	
  
       CI,	
  TDD	
  
       Expert	
  JUnit	
  
       DBUnit,	
  HTMLUnit,	
  Selenium	
  
       Automate	
  documentation	
  generation	
  

  March	
  25th	
  –	
  26th	
  


                      www.nukio.com	
  
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky Problem

More Related Content

What's hot

Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Applicationguest1f2740
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination ExtRohit Kelapure
 
Jvm performance tuning
Jvm performance tuningJvm performance tuning
Jvm performance tuningIgor Igoroshka
 
Software Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsSoftware Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsIsuru Perera
 
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Ivan Loire
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Troubleshooting performanceavailabilityproblems (1)
Troubleshooting performanceavailabilityproblems (1)Troubleshooting performanceavailabilityproblems (1)
Troubleshooting performanceavailabilityproblems (1)Tier1 app
 
Testing nodejs apps
Testing nodejs appsTesting nodejs apps
Testing nodejs appsfelipefsilva
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS偉格 高
 
High Availability Django - Djangocon 2016
High Availability Django - Djangocon 2016High Availability Django - Djangocon 2016
High Availability Django - Djangocon 2016Frankie Dintino
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets JavaTokuhiro Matsuno
 
Shooting the troubles: Crashes, Slowdowns, CPU Spikes
Shooting the troubles: Crashes, Slowdowns, CPU SpikesShooting the troubles: Crashes, Slowdowns, CPU Spikes
Shooting the troubles: Crashes, Slowdowns, CPU SpikesTier1 app
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node jsAkshay Mathur
 
Monitoring And Tuning Glass Fish In The Wild Community One 2009
Monitoring And Tuning Glass Fish In The Wild   Community One 2009Monitoring And Tuning Glass Fish In The Wild   Community One 2009
Monitoring And Tuning Glass Fish In The Wild Community One 2009SteveMillidge
 
Real World Mocking In Swift
Real World Mocking In SwiftReal World Mocking In Swift
Real World Mocking In SwiftVeronica Lillie
 
Vue Testing - Vue Sydney Meetup - Dec 2017
Vue Testing - Vue Sydney Meetup - Dec 2017Vue Testing - Vue Sydney Meetup - Dec 2017
Vue Testing - Vue Sydney Meetup - Dec 2017Cedric Nicoloso
 
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...The Hacker News
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Minchul Jung
 

What's hot (20)

Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
 
HotSpotコトハジメ
HotSpotコトハジメHotSpotコトハジメ
HotSpotコトハジメ
 
Jvm performance tuning
Jvm performance tuningJvm performance tuning
Jvm performance tuning
 
Software Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and FlamegraphsSoftware Profiling: Java Performance, Profiling and Flamegraphs
Software Profiling: Java Performance, Profiling and Flamegraphs
 
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Troubleshooting performanceavailabilityproblems (1)
Troubleshooting performanceavailabilityproblems (1)Troubleshooting performanceavailabilityproblems (1)
Troubleshooting performanceavailabilityproblems (1)
 
Testing nodejs apps
Testing nodejs appsTesting nodejs apps
Testing nodejs apps
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
 
High Availability Django - Djangocon 2016
High Availability Django - Djangocon 2016High Availability Django - Djangocon 2016
High Availability Django - Djangocon 2016
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets Java
 
Shooting the troubles: Crashes, Slowdowns, CPU Spikes
Shooting the troubles: Crashes, Slowdowns, CPU SpikesShooting the troubles: Crashes, Slowdowns, CPU Spikes
Shooting the troubles: Crashes, Slowdowns, CPU Spikes
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
Monitoring And Tuning Glass Fish In The Wild Community One 2009
Monitoring And Tuning Glass Fish In The Wild   Community One 2009Monitoring And Tuning Glass Fish In The Wild   Community One 2009
Monitoring And Tuning Glass Fish In The Wild Community One 2009
 
Real World Mocking In Swift
Real World Mocking In SwiftReal World Mocking In Swift
Real World Mocking In Swift
 
Vue Testing - Vue Sydney Meetup - Dec 2017
Vue Testing - Vue Sydney Meetup - Dec 2017Vue Testing - Vue Sydney Meetup - Dec 2017
Vue Testing - Vue Sydney Meetup - Dec 2017
 
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...
The Hacker News: Hacking Wireless DSL routers via Admin Panel Password Reset ...
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법
 

Similar to Java Tools and Techniques for Solving Tricky Problem

[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
 
Beat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkBeat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkPedro González Serrano
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdminsPuppet
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecturejoaquincasares
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...Maarten Balliauw
 
Real World Single Page App - A Knockout Case Study
Real World Single Page App - A Knockout Case StudyReal World Single Page App - A Knockout Case Study
Real World Single Page App - A Knockout Case Studyhousecor
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarMaarten Balliauw
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futureTakayuki Muranushi
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
Node Security: The Good, Bad & Ugly
Node Security: The Good, Bad & UglyNode Security: The Good, Bad & Ugly
Node Security: The Good, Bad & UglyBishan Singh
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentationjward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentationjward5519
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.David Nuescheler
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best PracticesEric Bottard
 
Challenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in JavaChallenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in Javalucenerevolution
 

Similar to Java Tools and Techniques for Solving Tricky Problem (20)

[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
Beat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmarkBeat the devil: towards a Drupal performance benchmark
Beat the devil: towards a Drupal performance benchmark
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecture
 
Foolangjs
FoolangjsFoolangjs
Foolangjs
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
 
Mysql talk
Mysql talkMysql talk
Mysql talk
 
Real World Single Page App - A Knockout Case Study
Real World Single Page App - A Knockout Case StudyReal World Single Page App - A Knockout Case Study
Real World Single Page App - A Knockout Case Study
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinar
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Node Security: The Good, Bad & Ugly
Node Security: The Good, Bad & UglyNode Security: The Good, Bad & Ugly
Node Security: The Good, Bad & Ugly
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
Learn how to debug
Learn how to debugLearn how to debug
Learn how to debug
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
All of Javascript
All of JavascriptAll of Javascript
All of Javascript
 
Surge2012
Surge2012Surge2012
Surge2012
 
Challenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in JavaChallenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in Java
 

More from Will Iverson

Decisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile WebDecisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile WebWill Iverson
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013Will Iverson
 
QA Lab in the Cloud
QA Lab in the CloudQA Lab in the Cloud
QA Lab in the CloudWill Iverson
 
SeaJUG May 2012 mybatis
SeaJUG May 2012 mybatisSeaJUG May 2012 mybatis
SeaJUG May 2012 mybatisWill Iverson
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Introduction to Kanban
Introduction to KanbanIntroduction to Kanban
Introduction to KanbanWill Iverson
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2Will Iverson
 
Software Internationalization Crash Course
Software Internationalization Crash CourseSoftware Internationalization Crash Course
Software Internationalization Crash CourseWill Iverson
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web FrameworkWill Iverson
 
Design For Testability
Design For TestabilityDesign For Testability
Design For TestabilityWill Iverson
 

More from Will Iverson (12)

SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
Java CMS 2015
Java CMS 2015Java CMS 2015
Java CMS 2015
 
Decisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile WebDecisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile Web
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013
 
QA Lab in the Cloud
QA Lab in the CloudQA Lab in the Cloud
QA Lab in the Cloud
 
SeaJUG May 2012 mybatis
SeaJUG May 2012 mybatisSeaJUG May 2012 mybatis
SeaJUG May 2012 mybatis
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Introduction to Kanban
Introduction to KanbanIntroduction to Kanban
Introduction to Kanban
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2
 
Software Internationalization Crash Course
Software Internationalization Crash CourseSoftware Internationalization Crash Course
Software Internationalization Crash Course
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 

Recently uploaded

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Java Tools and Techniques for Solving Tricky Problem

  • 1.
  • 2. Who  Is  This  Guy?     Will  Iverson     wiverson@nukio.com     Check  www.nukio.com  for  LinkedIn,  Twitter,  etc.     Java  since  1995     Pascal/C/C++  before  that…     Apple,  Symantec,  Sun,  BEA…     Four  books  on  Java     Hibernate,  Web  Services,  Mac  OS  X  Java,  Jakarta  Commons     Today:  Architect,  Consultant,  Manager,  Coach     All  Star  Directories     Nukio  
  • 3. The  Setup     IT  has  dead  bodies     What  happened…  and  next  steps?  
  • 4. Finding  Bodies     Profiler?     Heap  dumps     Thread  dumps     Stack  traces  
  • 5.  Getting  Heap  Dumps     Built-­‐in  Executables  (available  in  prod)     java  (VM  flag,  dump  on  OOM)     jmap     jconsole  (JMX)     jvisualvm     All  profilers     YourKit,  NetBeans,  Eclipse,  JProbe     Only  available  in  dev  
  • 6. Getting  Thread  Dumps     Built-­‐in  Executables  (available  in  prod)     jstack     jconsole     Jvisualvm     All  profilers     Only  available  in  dev  
  • 7. Beat  Patrol     Get  to  know  the  neighborhood  when  nothing    is   going  on…     Heap     Thread  Dump     Profilers  (CPU)  
  • 8. Cases     Memory  Problem  #1     Memory  Problem  #2     Thread  Dump  #1     Thread  Dump  #2     Thread  Dump  #3     Memory  Problem  #3  
  • 9. What  about  Serial  Killers?     Really  unique,  horrible  things     Strange  deadlocks     JVM  bugs     Driver  bugs     Avoid  Dark  Alleys     Don’t  write  threading  code  unless  you  need  to…     …and  you  probably  don’t  need  to.     Tip:  try  an  in  memory  database  (HSQLDB  or  db40)     Stateless,  parallel  operations     KISS     More  in  futures  section  
  • 10. Reconstructing  Crimes     jstack     jmap  (ha!)     Attach  with  Visual  VM     Attach  with  jconsole     Use  Profilers  (skip  jhat)     Cheap,  powerful  
  • 11. Most  Normal  Web  Apps     Problem  is  with  db/JVM  interaction,  not  JVM     Solution?     P6spy     JDBC  Driver  Shim     Records  database  interaction     Review  in  Excel  or  with  Iron  tools     http://www.cascadetg.com/hibernate/     Fit  to  target     Yes,  I  know  your  1,000,000  TPS  billing  system  required   instruction  counting…  and  you  wound  up  sending  it  out  for   an  ASIC,  etc  etc  etc…  
  • 12. Tips     Single  user  on  dev  is  a  nice  starting  spot,  but  starve   your  resources.    Allocate  min  to  server.       Should  still  be  fast  as  all  heck.     Memory  or  CPU  on  a  single  page  out  of  bounds  =  total   nightmare  on  server…  think  about  all  other  requests   coming  in.     Know  your  targets     Establish  a  baseline  and  a  simple  scorecard     Know  your  database     All  mainstream  databases  have  great  tools  
  • 13. Finding  the  Future     Stateless  Services     e.g.  Spring  MVC,  REST     Avoid  Sessions  &  Wizards     Shopping  cart…  that  stays  around  forever?     Key/Value  Datastores     BigTable,  MongoDB,  Amazon  S3     Easy:  play  with  today  for  free  using  Google  AppEngine     Enhance  Your  Platform     Track  CPU/Memory  Usage  for  Page  Views     Response  times  +  browser  rendering  
  • 14. Tip:  Better  to  NOT  find  in   Production     Solution:  Solid  Automated  Tests,  Good  Perf   Environment     “Can’t  afford  to  automate”     “Can’t  afford  to  ship”  
  • 15. Shameless  Plug     Agile  Testing     CI,  TDD     Expert  JUnit     DBUnit,  HTMLUnit,  Selenium     Automate  documentation  generation     March  25th  –  26th   www.nukio.com