Upload
praveen-adupa
View
989
Download
7
Embed Size (px)
Citation preview
JBoss EAP 6
Performance Tuning
Praveen Adupa – Middleware Solutions Architect
Agenda
● Performance Tuning
– JVM Tuning
– EAP6 Tuning (Web, EJB, JDBC, Logging etc.)
– Monitoring Tools
Performance Tuning Principles
● Understand your Application performance requirements
● Plan for peaks, not averages
● Always instrument your application
● Understand where your application spends its time
● Replicate or model your production environment
JVM Tuning
JVM Tuning – Two types of GC
JVM Tuning – Basic Steps
JVM Tuning – Tune JVM Heap
JVM Tuning – Tune JVM Heap
JVM Tuning – Tune JVM Heap
JVM Tuning – Tune JVM Heap
JVM Tuning – Tune Young/Tenured Gen
JVM Tuning – Tune Young/Tenured Gen
JVM Tuning – Tune the GC algorithm
JVM Tuning – Serial Collector
JVM Tuning – Parallel collector
JVM Tuning – Concurrent Collector
JVM Tuning – G1(Garbage First) collector
● G1 is low pause, low latency Garbage Collector
– One Large contiguous Heap Space split into fixed sized regions.
– Intended to be a long term replacement of CMS
– Officially supported as of 7u4, EAP 5.2 and EAP6.
● G1 is concurrent, Parallel and compacting
– Concurrent for Refinement, Marking, cleanup
– Parallel for STW pauses
– On the Go Heap compaction
● Use When
– Heaps Larger than 4GB
– Faster and High performance over other GC Types with
– Uses more memory and CPU than other GC types.
JVM Tuning – Other JVM Settings
- Use Large Pages for Memory intensive application (-XX:+UseLargePages) - Server mode (- server) - AgressiveOpts ( -XX:+AggressiveOpts) - Thread Stack size (-Xss128k)
EAP6 Tuning
1. Tune Configuration2. Tune JDBC pools3. Tune EJB pools4. Tune Web pools
EAP6 Configuration Tuning
1. Slim the Configuration - unused profiles
- unused data-sources (for ex. ExampleDS, H2 Driver) - unused Subsystems (for ex. Mail, Messaging, Modcluster)2. Separate Application logging from Server logging.3. Deploy Using CLI4. Turn off hot deployment scanner5. Use Modules (database drivers, shared libraries etc.)
EAP6 Tuning – Tuning JDBC Pools
EAP6 Tuning – Tuning JDBC Pools
EAP6 Tuning – Tuning JDBC Pools
EAP6 Tuning – Tuning JDBC Pools
EAP6 Tuning – Tuning EJB pools
EAP6 Tuning – Tuning EJB pools
EAP6 Tuning – Tuning the Web pools
EAP6 Tuning – Tuning the Web pools
EAP6 Tuning – Log performance Tuning
EAP6 Tuning – Log performance Tuning
EAP6 Tuning – Log performance Tuning
EAP6 Tuning – Log performance Tuning
EAP6 Tuning – Log performance Tuning
Monitoring Tools - JMX
1. VisualVM (for monitoring/troubleshooting/profiling)
2. JBoss Operations Network (for Monitoring/metrics collection/alerting)
3. Third party Monitoring Tools (Introscope, AppDynamics etc.)
EAP6 Monitoring Tools – Profilers and Others
● Profilers (jProfiler, yourkit)● Thread Dumps
– https://access.redhat.com/knowledge/solutions/18178● Heap Dumps /Analyzer
– Eclipse Memory Analyzer http://www.eclipse.org/mat/– https://access.redhat.com/knowledge/solutions/21109
● GC Logging– GCViewer– https://access.redhat.com/knowledge/solutions/18656
6/9/16
Thank You
Software Patching
● Understand the needs and goals in your environment
● Use some sort of change control process or tool
● Apply patches on a "need only" basis
● Inspect and read all documentation regarding the patch
● Ensure consistency across all patch repository
● Testing
● Roll-back strategy
● Try not to get behind on patches
Security Advisories
● Subscribe to appropriate advisory notification:– https://access.redhat.com/security/updates/advisory/
● CVE Database– https://access.redhat.com/security/cve/