SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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.애플리케이션 서버의 병목_발견_방법
 

Ähnlich wie 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
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
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
 
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
 

Ähnlich wie 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
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
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
 
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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 

Kürzlich hochgeladen (20)

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 

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