This document discusses performance tuning for Wildfly8 applications. It outlines reasons for tuning like contractual obligations and user experience. It describes benchmarking methodology like defining test objectives and harnessing test tools. Common bottlenecks like the web tier, EJB tier, and JMS/JDBC connections are discussed. Wildfly tuning controls like thread pools, bean instance counts, and pool sizes are covered. Ideal request flow and queuing with timeouts are addressed. Specific thread pool types like unbounded, bounded, and blocking-bounded are explained. The presentation ends with questions.
2. Agenda
• Identify reasons for tuning
• Methodology for tuning (benchmarking)
• Bottlenecks
• Wildfly tuning controls
• Demonstration
• Bigger Picture
• Question and Answers
3. Reasons for tuning
•
Contractual Obligations
•
User experience
•
Shared systems
•
Ops per second
•
Predictable system degradation
•
Career aspirations / credibility
4. Performance Benchmarking
• Methodology, Java Performance (book)
• Write “test objectives” (½ page)
• Harness test tools
– Gatling
– Faban
– Smart Frog
• Test one change at a time
• Observe system during tests
5. Crafting a performance test
• Use your “Test Objective” document
• Write your driver
• Set-up software / hardware
• Run tests
• Check for silly mistakes
– Verify using simple tools
– Driver checking for errors
– Recovery Manager activity
7. Problems to consider
• Machines have finite resources
• Multi app deployment
• Shared hosting
• Greedy consumers
Let's take a look at some greedy
consumers....
17. Thread pools
• Types available in Wildfly
– Unbounded, bounded, blocking-bounded,
queueless, blocking-queueless, scheduled
• Characteristics
• When to use them
19. bounded
• Characteristics
– OOM can be prevented
– Adaptable to demand and efficient
– Better latency guarantees
– Some requests may fail
• When to use
– Latency is a priority
20. Blocking-bounded
• Characteristics
– Reliable latency if not overloaded
– Can cope with load surges (predictable)
– Can be configured to prevent OOM
• When to use
– Latency is medium priority
– Load surges can be farmed out over time
21. Perf test demo
Bottleneck tuning
• Objective: Identify any bottlenecks
• Use a driver to create load (Faban)
• Sample application
• Run Perf test <---
• Take statistic samples |
• Draw conclusions |
• Change configuration ---
• Stop, reached objective or time box.