38
JBoss EAP 6 Performance Tuning Praveen Adupa – Middleware Solutions Architect

EAP6 performance Tuning

Embed Size (px)

Citation preview

Page 1: EAP6 performance Tuning

JBoss EAP 6

Performance Tuning

Praveen Adupa – Middleware Solutions Architect

Page 2: EAP6 performance Tuning

Agenda

● Performance Tuning

– JVM Tuning

– EAP6 Tuning (Web, EJB, JDBC, Logging etc.)

– Monitoring Tools

Page 3: EAP6 performance Tuning

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

Page 4: EAP6 performance Tuning

JVM Tuning

Page 5: EAP6 performance Tuning

JVM Tuning – Two types of GC

Page 6: EAP6 performance Tuning

JVM Tuning – Basic Steps

Page 7: EAP6 performance Tuning

JVM Tuning – Tune JVM Heap

Page 8: EAP6 performance Tuning

JVM Tuning – Tune JVM Heap

Page 9: EAP6 performance Tuning

JVM Tuning – Tune JVM Heap

Page 10: EAP6 performance Tuning

JVM Tuning – Tune JVM Heap

Page 11: EAP6 performance Tuning

JVM Tuning – Tune Young/Tenured Gen

Page 12: EAP6 performance Tuning

JVM Tuning – Tune Young/Tenured Gen

Page 13: EAP6 performance Tuning

JVM Tuning – Tune the GC algorithm

Page 14: EAP6 performance Tuning

JVM Tuning – Serial Collector

Page 15: EAP6 performance Tuning

JVM Tuning – Parallel collector

Page 16: EAP6 performance Tuning

JVM Tuning – Concurrent Collector

Page 17: EAP6 performance Tuning

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.

Page 18: EAP6 performance Tuning

JVM Tuning – Other JVM Settings

- Use Large Pages for Memory intensive application (-XX:+UseLargePages) - Server mode (- server) - AgressiveOpts ( -XX:+AggressiveOpts) - Thread Stack size (-Xss128k)

Page 19: EAP6 performance Tuning

EAP6 Tuning

1. Tune Configuration2. Tune JDBC pools3. Tune EJB pools4. Tune Web pools

Page 20: EAP6 performance Tuning

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.)

Page 21: EAP6 performance Tuning

EAP6 Tuning – Tuning JDBC Pools

Page 22: EAP6 performance Tuning

EAP6 Tuning – Tuning JDBC Pools

Page 23: EAP6 performance Tuning

EAP6 Tuning – Tuning JDBC Pools

Page 24: EAP6 performance Tuning

EAP6 Tuning – Tuning JDBC Pools

Page 25: EAP6 performance Tuning

EAP6 Tuning – Tuning EJB pools

Page 26: EAP6 performance Tuning

EAP6 Tuning – Tuning EJB pools

Page 27: EAP6 performance Tuning

EAP6 Tuning – Tuning the Web pools

Page 28: EAP6 performance Tuning

EAP6 Tuning – Tuning the Web pools

Page 29: EAP6 performance Tuning

EAP6 Tuning – Log performance Tuning

Page 30: EAP6 performance Tuning

EAP6 Tuning – Log performance Tuning

Page 31: EAP6 performance Tuning

EAP6 Tuning – Log performance Tuning

Page 32: EAP6 performance Tuning

EAP6 Tuning – Log performance Tuning

Page 33: EAP6 performance Tuning

EAP6 Tuning – Log performance Tuning

Page 34: EAP6 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.)

Page 35: EAP6 performance Tuning

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

Page 36: EAP6 performance Tuning

6/9/16

Thank You

Page 37: EAP6 performance Tuning

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

Page 38: EAP6 performance Tuning

Security Advisories

● Subscribe to appropriate advisory notification:– https://access.redhat.com/security/updates/advisory/

● CVE Database– https://access.redhat.com/security/cve/