SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
Wprowadzenie do
strojenia Javy na
GNU/Linux dla zajętego
programisty
Tomasz Borek, Symentis
• Infected in childhood
• From me parents
• Amstrad, ElWro Junior
• Games! Doh!
• Mem pages in DOS anyone?
• In IT
• ETL, crawlers, web-app, archi
• IAAS, SAAS, own servers
• Java 4 – 7, GNU/Linux, SQLs
• Ardent “activist”
Tomasz Borek
Can be found in the net! :P
https://lafkblogs.wordpress.com/
https://twitter.com/lafk_pl
https://pl.linkedin.com/in/tjborek
GeeCON, ChamberConf, Confitura, Lambda Days, LambdaCon,
Java Developer Days, JavaDay Lviv, JavaDay Kiev
Tomek in IT groups
.com
http://java.pl Kraków
Poznań
Praga
Sopot
http://geecon.org
Prod hits rock bottom
● Everybody is kung-fu fighting
● Must be quick like lightning
So! Being a dev, you need:
1.To know your traffic and your app and your infra
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
4.To have access to monitoring
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
4.To have access to monitoring
5.To adjust pooling (both thread and connection)
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
4.To have access to monitoring
5.To adjust pooling (both thread and connection)
6.To peruse logs and pull out anomalies
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
4.To have access to monitoring
5.To adjust pooling (both thread and connection)
6.To peruse logs and pull out anomalies
7.TO TUNE JVM
So! Being a dev, you need:
1.To know your traffic and your app and your infra
2.To know recent changes
3.To know your limits (sometimes comes from point 1)
4.To have access to monitoring
5.To adjust pooling (both thread and connection)
6.To peruse logs and pull out anomalies
7.TO TUNE JVM
JVM? Meaning?
• Sun Hotspot
• IBM
• JRockit
• IceTea
• OpenJDK
• TCK decides
JVM? Meaning?
• Sun Hotspot
• IBM
• JRockit
• IceTea
• OpenJDK
• TCK decides
JVM? Meaning?
• Sun Hotspot – but which version?
• IBM
• JRockit
• IceTea
• OpenJDK
• TCK decides
JVM? Meaning?
• Sun Hotspot – but which version? And architecture?
• IBM
• JRockit
• IceTea
• OpenJDK
• TCK decides
So! JVM tuning?
1.To adjust GC, based on it's logs
So! JVM tuning?
1.To adjust GC, based on it's logs
2.To adjust (native) heap
So! JVM tuning?
1.To adjust GC, based on it's logs
2.To adjust (native) heap
3.Tweaking JVM starting flags
So! JVM tuning?
1.To adjust GC, based on it's logs
2.To adjust (native) heap
3.Tweaking JVM starting flags
4.To use TOOLS
Today!
● JVM tuning
● Diagnosing performance problems
● Tools
● All in a rush
JVM tuning
Takeaway #1
JVM is a process
Being a process means
● OS architecture enforces JVM architecture
● Your memory is limited by OS and other processes
– Heap is one
– C-heap is another!
● IO-wise and thread-wise:
– Your threads and files opened are limited by ulimit
● File descriptors!
OOM flavours?
OOM flavours
● Out of HeapSpace
OOM flavours
● Out of HeapSpace
● PermGen error
OOM flavours
● Out of HeapSpace
● PermGen error
● Unable to create native thread
OOM flavours
● Out of HeapSpace
● PermGen error
● Unable to create native thread
● There are others, these are most popular
API says OutOfMemoryError is
● Thrown when the Java Virtual Machine cannot
allocate an object because it is out of memory, and
no more memory could be made available by the
garbage collector. OutOfMemoryError objects may
be constructed by the virtual machine as if
suppression were disabled and/or the stack trace
was not writable.
API says OutOfMemoryError is
● Thrown when the Java Virtual Machine cannot
allocate an object because it is out of memory,
and no more memory could be made available
by the garbage collector. OutOfMemoryError
objects may be constructed by the virtual machine
as if suppression were disabled and/or the stack
trace was not writable.
API says OutOfMemoryError is
● Due to failure in allocating an object after garbage
collection.
● Nothing about threads.
● Nothing about PermGen.
How much memory JVM uses?
● Say you start it with Xmx == Xms == 1GB
How much memory JVM uses?
● Say you start it with Xmx == Xms == 1GB
● 1GB?
How much memory JVM uses?
● Say you start it with Xmx == Xms == 1GB
● 1GB?
● Around 1GB?
How much memory JVM uses?
● Say you start it with Xmx == Xms == 1GB
● 1GB?
● Around 1GB?
● If we talk about Java HEAP
Memory management
Entire RAM
● 32 bits: can address less than 4GB.
● 64 bits: can address… theoretically 16 EB.
– Still – much more!
● There's much more to 32vs64 but that's for another time
Memory management
Entire RAM
What's left of RAM – C-HEAPJVM heap
-Xmx
● -Xms – minimal heap size
● -Xmx – maximal heap size
● When both should be set to same value?
Memory management
Entire RAM
What's left of RAM – C-HEAPJVM heap
What's left – C-HEAPJVM opsJVM heap
-Xmx
PermGen
PermGen
● Permanent Generation
– Early Java
– for JDK classes
– and Strings
● Back then – good idea
● Now removed
– JDK 7 – Strings no longer in PermGen
– JDK 8 – no PermGen at all
PermGen
● Permanent Generation
– Early Java
– for JDK classes
– and Strings
● Back then – good idea
● Now removed
– JDK 7 – Strings no longer in PermGen
– JDK 8 – no PermGen at all
Quick fix?
Increase PermGen size.
Memory management
What's left – C-HEAPJVM opsJVM heap
-Xmx
PermGen
GC
● When it runs?
GC
● When it runs?
● Minor collection?
GC
● When it runs?
● Minor collection?
● Major collection?
GC
● When it runs?
● Minor collection?
● Major collection?
● How can a dev tune GC?
Generational GC
Tenured – where long-lived are promotedEden – infants that die quickly
● Studies showed:
– most objects die young
– Some live really long
● Ergo: short- and long-lived division
● Minor collection: Eden
● Major collection: whole heap
Generational GC - mechanics
● In fact Eden has also 2 Survivor spaces
– To handle locality
– Helps compress after freeing space
– First promotion to survivor, then to tenured
● Flags tell:
– How many GCs object must survive to be promoted
– How large Eden / Tenured / Survivors spaces are
– What is logged (how details GC logs are)
– Many, MANY more
Memory management trade-offs
● Large heap – large full GC – small native and C-heap?
● Smaller heap – minor GC may be enough
● Make sure your objects die young and only really long
lived reach tenured
JVM tuning
1.To adjust GC, based on it's logs
2.To adjust (native) heap
3.Tweaking JVM starting flags
4.To use TOOLS – later
Takeaway #2
Log GC
Takeaway #3
GC tuning is a trade-off
Diagnosing performance problems
„The Box”
• Heinz Kabutz, Kirk Pepperdine
• Top - bottom
„The Box”
• TRAFFIC: ? TRAFFIC
„The Box”
• TRAFFIC: how is app used? TRAFFIC: people,
automatic
„The Box”
• TRAFFIC: how is app used?
• CODE: ?
TRAFFIC: people,
automatic
Application CODE
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: ?
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: ?
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ?
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ulimit, FS, config, archi, other procs…
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS: FS, config, limits
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ulimit, FS, config, archi, other procs…
• VIRT: ?
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS: FS, config, limits
VIRT
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ulimit, FS, config, archi, other procs…
• VIRT: hell depends!
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS: FS, config, limits
VIRT
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ulimit, FS, config, archi, other procs…
• VIRT: hell depends!
• HARDWARE: ?
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS: FS, config, limits
VIRT
HARDWARE
„The Box”
• TRAFFIC: how is app used?
• CODE: threads, algos, data structures...
• JVM: starting flags, GC
• OS: ulimit, FS, config, archi, other procs…
• VIRT: hell depends!
• HARDWARE: 32 vs 64, RAM, BIOS, drivers…
TRAFFIC: people,
automatic
CODE: threads, data
structs, algo
JVM: flags, GC
OS: FS, config, limits
VIRT
HARDWARE
Brendan Gregg – USE
• Utilization, Saturation, Errors
• Use – how much in use is your resource
• Saturation – how many requests await (waiting queue)
• Errors – what errors are thrown by resource
• http://www.brendangregg.com/usemethod.html
• Create a checklist for each important resource, for
finding out Utilization, Saturation and Errors and you'll
know how to soon find out what is going on with
resource
Takeaway #1
The Box
Takeaway #2
GNU/Linux perf? Brendan Gregg
TOOLS
Takeaway #1
GNU/Linux surely has a tool for that
How to find your java process?
● ps … | grep java
●
How to find your java process?
● ps … | grep java
● pgrep java
How to find your java process?
● ps … | grep java
● pgrep java
● jps
How to change flags on-the-fly?
● jinfo
How to dump threads or heap?
● kill -3
How to dump threads or heap?
● kill -3
● jstack
How to dump threads or heap?
● kill -3
● jstack
● jhat (heap)
jvisualvm
● Deserves it's own slide
● Profiler, sampler
● Monitor (heap, threads, etc.)
● Calls GC, does dumps
SUMMARIZING
● For being rushed – prepare in advance
– Monitoring, logs, ceilings, etc.
● Log GC
● JVM is a process – all process limits in your OS apply
● The Box
● Brendan Gregg
● GNU/Linux – tools unparalleled
?

Weitere ähnliche Inhalte

Was ist angesagt?

Over 9000: JRuby in 2015
Over 9000: JRuby in 2015Over 9000: JRuby in 2015
Over 9000: JRuby in 2015Charles Nutter
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkIan Pointer
 
NodePDX Slides
NodePDX SlidesNodePDX Slides
NodePDX SlidesKyle Drake
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Crate - ruby based standalone executables
Crate - ruby based standalone executablesCrate - ruby based standalone executables
Crate - ruby based standalone executablesJeremy Hinegardner
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Holden Karau
 
TRICK2013 Results
TRICK2013 ResultsTRICK2013 Results
TRICK2013 Resultsmametter
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...Holden Karau
 
Codebits Handivi
Codebits HandiviCodebits Handivi
Codebits Handivicfpinto
 
High Performance Ruby - E4E Conference 2013
High Performance Ruby - E4E Conference 2013High Performance Ruby - E4E Conference 2013
High Performance Ruby - E4E Conference 2013Charles Nutter
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?Hiroshi SHIBATA
 
An introduction and future of Ruby coverage library
An introduction and future of Ruby coverage libraryAn introduction and future of Ruby coverage library
An introduction and future of Ruby coverage librarymametter
 
JRuby: What's Different (RORO Melbourne October 2011)
JRuby: What's Different (RORO Melbourne October 2011)JRuby: What's Different (RORO Melbourne October 2011)
JRuby: What's Different (RORO Melbourne October 2011)Charles Nutter
 
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...mfrancis
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 

Was ist angesagt? (20)

JRuby: The Hard Parts
JRuby: The Hard PartsJRuby: The Hard Parts
JRuby: The Hard Parts
 
Over 9000: JRuby in 2015
Over 9000: JRuby in 2015Over 9000: JRuby in 2015
Over 9000: JRuby in 2015
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
 
Euruko 2012 - JRuby
Euruko 2012 - JRubyEuruko 2012 - JRuby
Euruko 2012 - JRuby
 
NodePDX Slides
NodePDX SlidesNodePDX Slides
NodePDX Slides
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Crate - ruby based standalone executables
Crate - ruby based standalone executablesCrate - ruby based standalone executables
Crate - ruby based standalone executables
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
 
TRICK2013 Results
TRICK2013 ResultsTRICK2013 Results
TRICK2013 Results
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 
Gpgpu intro
Gpgpu introGpgpu intro
Gpgpu intro
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
Ruby Under The Hood
Ruby Under The HoodRuby Under The Hood
Ruby Under The Hood
 
Codebits Handivi
Codebits HandiviCodebits Handivi
Codebits Handivi
 
High Performance Ruby - E4E Conference 2013
High Performance Ruby - E4E Conference 2013High Performance Ruby - E4E Conference 2013
High Performance Ruby - E4E Conference 2013
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
 
An introduction and future of Ruby coverage library
An introduction and future of Ruby coverage libraryAn introduction and future of Ruby coverage library
An introduction and future of Ruby coverage library
 
JRuby: What's Different (RORO Melbourne October 2011)
JRuby: What's Different (RORO Melbourne October 2011)JRuby: What's Different (RORO Melbourne October 2011)
JRuby: What's Different (RORO Melbourne October 2011)
 
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 

Andere mochten auch

Social Media Article 11.15
Social Media Article 11.15Social Media Article 11.15
Social Media Article 11.15Anne Cameron
 
Автоматизація Процесу HR
Автоматизація Процесу HRАвтоматизація Процесу HR
Автоматизація Процесу HRLubaS26
 
Maldív szigetek
Maldív szigetekMaldív szigetek
Maldív szigetekzelezny2
 
3. Нужные люди на своих местах. Тренды управления разработкой
3. Нужные люди на своих местах. Тренды управления разработкой3. Нужные люди на своих местах. Тренды управления разработкой
3. Нужные люди на своих местах. Тренды управления разработкойЕвгений Антонов
 
Information Technology Terminology - Brainbench
Information Technology Terminology - BrainbenchInformation Technology Terminology - Brainbench
Information Technology Terminology - BrainbenchAmritanshu Banerjee
 
浜松情報 12月号 掲載インタビュー
浜松情報 12月号 掲載インタビュー浜松情報 12月号 掲載インタビュー
浜松情報 12月号 掲載インタビュー株式会社はまぞう
 
Идеальный отдел продаж. Планируем и внедряем изменения
Идеальный отдел продаж. Планируем и внедряем измененияИдеальный отдел продаж. Планируем и внедряем изменения
Идеальный отдел продаж. Планируем и внедряем измененияКонстантин Артемьев
 
Social Networking Effects
Social Networking EffectsSocial Networking Effects
Social Networking EffectsSatyam Mahajan
 
50 brilliant homepage design
50 brilliant homepage design50 brilliant homepage design
50 brilliant homepage designNirav Patel
 
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」オラクルエンジニア通信
 
ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析Yukio Yoshida
 

Andere mochten auch (15)

Social Media Article 11.15
Social Media Article 11.15Social Media Article 11.15
Social Media Article 11.15
 
Автоматизація Процесу HR
Автоматизація Процесу HRАвтоматизація Процесу HR
Автоматизація Процесу HR
 
Maldív szigetek
Maldív szigetekMaldív szigetek
Maldív szigetek
 
3. Нужные люди на своих местах. Тренды управления разработкой
3. Нужные люди на своих местах. Тренды управления разработкой3. Нужные люди на своих местах. Тренды управления разработкой
3. Нужные люди на своих местах. Тренды управления разработкой
 
Bb stvol
Bb stvolBb stvol
Bb stvol
 
Information Technology Terminology - Brainbench
Information Technology Terminology - BrainbenchInformation Technology Terminology - Brainbench
Information Technology Terminology - Brainbench
 
浜松情報 12月号 掲載インタビュー
浜松情報 12月号 掲載インタビュー浜松情報 12月号 掲載インタビュー
浜松情報 12月号 掲載インタビュー
 
Как развивать персонал и оценивать качество этого процесса
Как развивать персонал и оценивать качество этого процессаКак развивать персонал и оценивать качество этого процесса
Как развивать персонал и оценивать качество этого процесса
 
Art city
Art cityArt city
Art city
 
Идеальный отдел продаж. Планируем и внедряем изменения
Идеальный отдел продаж. Планируем и внедряем измененияИдеальный отдел продаж. Планируем и внедряем изменения
Идеальный отдел продаж. Планируем и внедряем изменения
 
Social Networking Effects
Social Networking EffectsSocial Networking Effects
Social Networking Effects
 
50 brilliant homepage design
50 brilliant homepage design50 brilliant homepage design
50 brilliant homepage design
 
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析
 

Ähnlich wie Java tuning on GNU/Linux for busy dev

Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGTomek Borek
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkTomas Doran
 
meetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypesmeetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypesMax Małecki
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and PerformanceWSO2
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming LanguageJaeju Kim
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performancepradeepfn
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploitTiago Henriques
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJSTim Sommer
 
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraCassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraDataStax Academy
 
MongoDB and server performance
MongoDB and server performanceMongoDB and server performance
MongoDB and server performanceAlon Horev
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)OpenBlend society
 
DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer
DOD 2016 - Jörg Schad - Nobody Puts Java in the ConainerDOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer
DOD 2016 - Jörg Schad - Nobody Puts Java in the ConainerPROIDEA
 
Lessons learned from building Demand Side Platform
Lessons learned from building Demand Side PlatformLessons learned from building Demand Side Platform
Lessons learned from building Demand Side Platformbbogacki
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Docker, Inc.
 
From a student to an apache committer practice of apache io tdb
From a student to an apache committer  practice of apache io tdbFrom a student to an apache committer  practice of apache io tdb
From a student to an apache committer practice of apache io tdbjixuan1989
 

Ähnlich wie Java tuning on GNU/Linux for busy dev (20)

Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUG
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Zero mq logs
Zero mq logsZero mq logs
Zero mq logs
 
meetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypesmeetPHP#8 - PHP startups prototypes
meetPHP#8 - PHP startups prototypes
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming Language
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploit
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
 
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraCassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
 
MongoDB and server performance
MongoDB and server performanceMongoDB and server performance
MongoDB and server performance
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
 
DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer
DOD 2016 - Jörg Schad - Nobody Puts Java in the ConainerDOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer
DOD 2016 - Jörg Schad - Nobody Puts Java in the Conainer
 
Performance
PerformancePerformance
Performance
 
Lessons learned from building Demand Side Platform
Lessons learned from building Demand Side PlatformLessons learned from building Demand Side Platform
Lessons learned from building Demand Side Platform
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
 
From a student to an apache committer practice of apache io tdb
From a student to an apache committer  practice of apache io tdbFrom a student to an apache committer  practice of apache io tdb
From a student to an apache committer practice of apache io tdb
 
Basics of JVM Tuning
Basics of JVM TuningBasics of JVM Tuning
Basics of JVM Tuning
 

Mehr von Tomek Borek

Noc informatyka - co ja wiem o testowaniu
Noc informatyka - co ja wiem  o testowaniuNoc informatyka - co ja wiem  o testowaniu
Noc informatyka - co ja wiem o testowaniuTomek Borek
 
Teaching PostgreSQL to new people
Teaching PostgreSQL to new peopleTeaching PostgreSQL to new people
Teaching PostgreSQL to new peopleTomek Borek
 
Nowoczesne architektury
Nowoczesne architekturyNowoczesne architektury
Nowoczesne architekturyTomek Borek
 
Java Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextJava Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextTomek Borek
 
Seeing through the smoke
Seeing through the smokeSeeing through the smoke
Seeing through the smokeTomek Borek
 
AR drone - Polish JUG short demo
AR drone - Polish JUG short demoAR drone - Polish JUG short demo
AR drone - Polish JUG short demoTomek Borek
 
Testing SAAS, how to go about it?
Testing SAAS, how to go about it?Testing SAAS, how to go about it?
Testing SAAS, how to go about it?Tomek Borek
 
Spróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działaSpróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działaTomek Borek
 
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Tomek Borek
 
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014Tomek Borek
 
Few words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilkaFew words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilkaTomek Borek
 
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"Tomek Borek
 
It's not always the application's fault
It's not always the application's faultIt's not always the application's fault
It's not always the application's faultTomek Borek
 
To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!Tomek Borek
 
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...Tomek Borek
 
Git nie dla początkujących
Git nie dla początkującychGit nie dla początkujących
Git nie dla początkującychTomek Borek
 
Architecture visualizers - tools usability study
Architecture visualizers - tools usability studyArchitecture visualizers - tools usability study
Architecture visualizers - tools usability studyTomek Borek
 
Meta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trendsMeta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trendsTomek Borek
 
"Narco" emotions - description of study on whether Twitter can be used to gle...
"Narco" emotions - description of study on whether Twitter can be used to gle..."Narco" emotions - description of study on whether Twitter can be used to gle...
"Narco" emotions - description of study on whether Twitter can be used to gle...Tomek Borek
 
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2Java Memory (Consistency) Model - Polish JUG One Beer Talk #2
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2Tomek Borek
 

Mehr von Tomek Borek (20)

Noc informatyka - co ja wiem o testowaniu
Noc informatyka - co ja wiem  o testowaniuNoc informatyka - co ja wiem  o testowaniu
Noc informatyka - co ja wiem o testowaniu
 
Teaching PostgreSQL to new people
Teaching PostgreSQL to new peopleTeaching PostgreSQL to new people
Teaching PostgreSQL to new people
 
Nowoczesne architektury
Nowoczesne architekturyNowoczesne architektury
Nowoczesne architektury
 
Java Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextJava Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and context
 
Seeing through the smoke
Seeing through the smokeSeeing through the smoke
Seeing through the smoke
 
AR drone - Polish JUG short demo
AR drone - Polish JUG short demoAR drone - Polish JUG short demo
AR drone - Polish JUG short demo
 
Testing SAAS, how to go about it?
Testing SAAS, how to go about it?Testing SAAS, how to go about it?
Testing SAAS, how to go about it?
 
Spróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działaSpróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działa
 
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
 
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
 
Few words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilkaFew words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilka
 
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
 
It's not always the application's fault
It's not always the application's faultIt's not always the application's fault
It's not always the application's fault
 
To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!
 
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
 
Git nie dla początkujących
Git nie dla początkującychGit nie dla początkujących
Git nie dla początkujących
 
Architecture visualizers - tools usability study
Architecture visualizers - tools usability studyArchitecture visualizers - tools usability study
Architecture visualizers - tools usability study
 
Meta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trendsMeta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trends
 
"Narco" emotions - description of study on whether Twitter can be used to gle...
"Narco" emotions - description of study on whether Twitter can be used to gle..."Narco" emotions - description of study on whether Twitter can be used to gle...
"Narco" emotions - description of study on whether Twitter can be used to gle...
 
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2Java Memory (Consistency) Model - Polish JUG One Beer Talk #2
Java Memory (Consistency) Model - Polish JUG One Beer Talk #2
 

Kürzlich hochgeladen

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Kürzlich hochgeladen (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

Java tuning on GNU/Linux for busy dev

  • 1. Wprowadzenie do strojenia Javy na GNU/Linux dla zajętego programisty Tomasz Borek, Symentis
  • 2. • Infected in childhood • From me parents • Amstrad, ElWro Junior • Games! Doh! • Mem pages in DOS anyone? • In IT • ETL, crawlers, web-app, archi • IAAS, SAAS, own servers • Java 4 – 7, GNU/Linux, SQLs • Ardent “activist” Tomasz Borek
  • 3. Can be found in the net! :P https://lafkblogs.wordpress.com/ https://twitter.com/lafk_pl https://pl.linkedin.com/in/tjborek GeeCON, ChamberConf, Confitura, Lambda Days, LambdaCon, Java Developer Days, JavaDay Lviv, JavaDay Kiev
  • 4. Tomek in IT groups .com http://java.pl Kraków Poznań Praga Sopot http://geecon.org
  • 5. Prod hits rock bottom ● Everybody is kung-fu fighting ● Must be quick like lightning
  • 6. So! Being a dev, you need: 1.To know your traffic and your app and your infra
  • 7. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes
  • 8. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1)
  • 9. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1) 4.To have access to monitoring
  • 10. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1) 4.To have access to monitoring 5.To adjust pooling (both thread and connection)
  • 11. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1) 4.To have access to monitoring 5.To adjust pooling (both thread and connection) 6.To peruse logs and pull out anomalies
  • 12. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1) 4.To have access to monitoring 5.To adjust pooling (both thread and connection) 6.To peruse logs and pull out anomalies 7.TO TUNE JVM
  • 13. So! Being a dev, you need: 1.To know your traffic and your app and your infra 2.To know recent changes 3.To know your limits (sometimes comes from point 1) 4.To have access to monitoring 5.To adjust pooling (both thread and connection) 6.To peruse logs and pull out anomalies 7.TO TUNE JVM
  • 14. JVM? Meaning? • Sun Hotspot • IBM • JRockit • IceTea • OpenJDK • TCK decides
  • 15. JVM? Meaning? • Sun Hotspot • IBM • JRockit • IceTea • OpenJDK • TCK decides
  • 16. JVM? Meaning? • Sun Hotspot – but which version? • IBM • JRockit • IceTea • OpenJDK • TCK decides
  • 17. JVM? Meaning? • Sun Hotspot – but which version? And architecture? • IBM • JRockit • IceTea • OpenJDK • TCK decides
  • 18. So! JVM tuning? 1.To adjust GC, based on it's logs
  • 19. So! JVM tuning? 1.To adjust GC, based on it's logs 2.To adjust (native) heap
  • 20. So! JVM tuning? 1.To adjust GC, based on it's logs 2.To adjust (native) heap 3.Tweaking JVM starting flags
  • 21. So! JVM tuning? 1.To adjust GC, based on it's logs 2.To adjust (native) heap 3.Tweaking JVM starting flags 4.To use TOOLS
  • 22. Today! ● JVM tuning ● Diagnosing performance problems ● Tools ● All in a rush
  • 24. Takeaway #1 JVM is a process
  • 25. Being a process means ● OS architecture enforces JVM architecture ● Your memory is limited by OS and other processes – Heap is one – C-heap is another! ● IO-wise and thread-wise: – Your threads and files opened are limited by ulimit ● File descriptors!
  • 27. OOM flavours ● Out of HeapSpace
  • 28. OOM flavours ● Out of HeapSpace ● PermGen error
  • 29. OOM flavours ● Out of HeapSpace ● PermGen error ● Unable to create native thread
  • 30. OOM flavours ● Out of HeapSpace ● PermGen error ● Unable to create native thread ● There are others, these are most popular
  • 31. API says OutOfMemoryError is ● Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector. OutOfMemoryError objects may be constructed by the virtual machine as if suppression were disabled and/or the stack trace was not writable.
  • 32. API says OutOfMemoryError is ● Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector. OutOfMemoryError objects may be constructed by the virtual machine as if suppression were disabled and/or the stack trace was not writable.
  • 33. API says OutOfMemoryError is ● Due to failure in allocating an object after garbage collection. ● Nothing about threads. ● Nothing about PermGen.
  • 34. How much memory JVM uses? ● Say you start it with Xmx == Xms == 1GB
  • 35. How much memory JVM uses? ● Say you start it with Xmx == Xms == 1GB ● 1GB?
  • 36. How much memory JVM uses? ● Say you start it with Xmx == Xms == 1GB ● 1GB? ● Around 1GB?
  • 37. How much memory JVM uses? ● Say you start it with Xmx == Xms == 1GB ● 1GB? ● Around 1GB? ● If we talk about Java HEAP
  • 38. Memory management Entire RAM ● 32 bits: can address less than 4GB. ● 64 bits: can address… theoretically 16 EB. – Still – much more! ● There's much more to 32vs64 but that's for another time
  • 39. Memory management Entire RAM What's left of RAM – C-HEAPJVM heap -Xmx ● -Xms – minimal heap size ● -Xmx – maximal heap size ● When both should be set to same value?
  • 40. Memory management Entire RAM What's left of RAM – C-HEAPJVM heap What's left – C-HEAPJVM opsJVM heap -Xmx PermGen
  • 41. PermGen ● Permanent Generation – Early Java – for JDK classes – and Strings ● Back then – good idea ● Now removed – JDK 7 – Strings no longer in PermGen – JDK 8 – no PermGen at all
  • 42. PermGen ● Permanent Generation – Early Java – for JDK classes – and Strings ● Back then – good idea ● Now removed – JDK 7 – Strings no longer in PermGen – JDK 8 – no PermGen at all Quick fix? Increase PermGen size.
  • 43. Memory management What's left – C-HEAPJVM opsJVM heap -Xmx PermGen
  • 44. GC ● When it runs?
  • 45. GC ● When it runs? ● Minor collection?
  • 46. GC ● When it runs? ● Minor collection? ● Major collection?
  • 47. GC ● When it runs? ● Minor collection? ● Major collection? ● How can a dev tune GC?
  • 48. Generational GC Tenured – where long-lived are promotedEden – infants that die quickly ● Studies showed: – most objects die young – Some live really long ● Ergo: short- and long-lived division ● Minor collection: Eden ● Major collection: whole heap
  • 49. Generational GC - mechanics ● In fact Eden has also 2 Survivor spaces – To handle locality – Helps compress after freeing space – First promotion to survivor, then to tenured ● Flags tell: – How many GCs object must survive to be promoted – How large Eden / Tenured / Survivors spaces are – What is logged (how details GC logs are) – Many, MANY more
  • 50. Memory management trade-offs ● Large heap – large full GC – small native and C-heap? ● Smaller heap – minor GC may be enough ● Make sure your objects die young and only really long lived reach tenured
  • 51. JVM tuning 1.To adjust GC, based on it's logs 2.To adjust (native) heap 3.Tweaking JVM starting flags 4.To use TOOLS – later
  • 53. Takeaway #3 GC tuning is a trade-off
  • 55. „The Box” • Heinz Kabutz, Kirk Pepperdine • Top - bottom
  • 57. „The Box” • TRAFFIC: how is app used? TRAFFIC: people, automatic
  • 58. „The Box” • TRAFFIC: how is app used? • CODE: ? TRAFFIC: people, automatic Application CODE
  • 59. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... TRAFFIC: people, automatic CODE: threads, data structs, algo
  • 60. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: ? TRAFFIC: people, automatic CODE: threads, data structs, algo JVM
  • 61. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: ? TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC
  • 62. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ? TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS
  • 63. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ulimit, FS, config, archi, other procs… TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS: FS, config, limits
  • 64. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ulimit, FS, config, archi, other procs… • VIRT: ? TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS: FS, config, limits VIRT
  • 65. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ulimit, FS, config, archi, other procs… • VIRT: hell depends! TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS: FS, config, limits VIRT
  • 66. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ulimit, FS, config, archi, other procs… • VIRT: hell depends! • HARDWARE: ? TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS: FS, config, limits VIRT HARDWARE
  • 67. „The Box” • TRAFFIC: how is app used? • CODE: threads, algos, data structures... • JVM: starting flags, GC • OS: ulimit, FS, config, archi, other procs… • VIRT: hell depends! • HARDWARE: 32 vs 64, RAM, BIOS, drivers… TRAFFIC: people, automatic CODE: threads, data structs, algo JVM: flags, GC OS: FS, config, limits VIRT HARDWARE
  • 68. Brendan Gregg – USE • Utilization, Saturation, Errors • Use – how much in use is your resource • Saturation – how many requests await (waiting queue) • Errors – what errors are thrown by resource • http://www.brendangregg.com/usemethod.html • Create a checklist for each important resource, for finding out Utilization, Saturation and Errors and you'll know how to soon find out what is going on with resource
  • 71. TOOLS
  • 72.
  • 73.
  • 74. Takeaway #1 GNU/Linux surely has a tool for that
  • 75. How to find your java process? ● ps … | grep java ●
  • 76. How to find your java process? ● ps … | grep java ● pgrep java
  • 77. How to find your java process? ● ps … | grep java ● pgrep java ● jps
  • 78. How to change flags on-the-fly? ● jinfo
  • 79. How to dump threads or heap? ● kill -3
  • 80. How to dump threads or heap? ● kill -3 ● jstack
  • 81. How to dump threads or heap? ● kill -3 ● jstack ● jhat (heap)
  • 82. jvisualvm ● Deserves it's own slide ● Profiler, sampler ● Monitor (heap, threads, etc.) ● Calls GC, does dumps
  • 83. SUMMARIZING ● For being rushed – prepare in advance – Monitoring, logs, ceilings, etc. ● Log GC ● JVM is a process – all process limits in your OS apply ● The Box ● Brendan Gregg ● GNU/Linux – tools unparalleled
  • 84. ?