WildFly Performance Tuning

WildFly Performance Tuning
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
save 6%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Enable performance tuning with the use of free and quality software
  • Tune the leading open source application server WildFly and its related components
  • Filled with clear step-by-step instructions to get to know the ins-and-outs of the platform, its components, and surrounding infrastructure to get the most and best out of it in any situation

Book Details

Language : English
Paperback : 330 pages [ 235mm x 191mm ]
Release Date : June 2014
ISBN : 1783980567
ISBN 13 : 9781783980567
Author(s) : Arnold Johansson, Anders Welén
Topics and Technologies : All Books, Other, Open Source

Table of Contents

Chapter 1: The Science of Performance Tuning
Chapter 2: Tools of the Tuning Trade
Chapter 3: Tuning the Java Virtual Machine
Chapter 4: Tuning WildFly
Chapter 5: EJB Tuning in WildFly
Chapter 6: Tuning the Persistence Layer
Chapter 7: Tuning the Web Container in WildFly
Chapter 8: Tuning Web Applications and Services
Chapter 9: JMS and HornetQ
Chapter 10: WildFly Clustering
  • Chapter 1: The Science of Performance Tuning
    • Performance
      • Response time
      • Throughput
      • Utilization efficiency
    • Scalability
    • Performance tuning anti-patterns
      • The one-off
      • The wrong team
      • The lack of mandate
      • The clever developer
    • Software development and quality assurance
    • Software development with performance focus
      • Analysis
      • Design
      • Implementation
      • Performance testing and tuning
    • The iterative performance-tuning process
      • Test cases and iteration
        • Setting the baseline
        • Running tests and collecting data
        • Analyzing the data
        • Tuning and retesting
      • Test data
      • Documentation
    • The environment of performance tests
    • The software life cycle
      • Upgrades
      • Metrics
    • Tuning an enterprise stack
      • Network
      • Hardware
      • Operating System
      • Java Virtual Machine
      • Middleware
      • Application
    • Summary
  • Chapter 2: Tools of the Tuning Trade
    • The key features of performance tuning
    • Profiling
      • Profiling in production
      • Profiling a JVM
    • Profiling and sampling
    • VisualVM
      • Standard features
      • The features of plugins
      • Connecting to a JVM
        • Local JVM
        • Remote JVM
      • Monitoring a JVM
        • Features
        • Test scenarios
      • A JMX connection to WildFly
        • Local or remote WildFly server
        • Setting up VisualVM
        • Connection in VisualVM
    • Monitoring
    • OS tools
      • Unix and Linux
        • Low CPU utilization
        • High CPU utilization
        • High resource contention
        • High disk utilization
      • OS X
      • Windows
    • WildFly tools
      • The Command-line Interface
      • The WildFly Management Console
      • JBoss DMR
      • JConsole
    • Generating load
    • Apache JMeter
      • Building a basic test plan
      • Improving the test plan
      • Recording a web session using the JMeter HTTP proxy
      • Standalone and distributed load generation
    • Summary
  • Chapter 3: Tuning the Java Virtual Machine
    • JVM
    • JVM memory areas
      • The JVM stack and native stack
      • The heap
      • Other JVM memory concepts
    • GC
    • JVM memory management with the GC
    • Configuring the JVM
      • Default settings
      • Client versus Server VM
      • The stack
      • The heap
        • Setting the maximum heap size
        • Setting the initial heap size
        • Determining what maximum size the heap should be
        • Determining what initial size the heap should be
        • Setting the size of the young and old generations
        • Setting the size ratio of Eden and the survivor spaces
        • PermGen
    • Large objects
    • Large memory pages
    • The java.lang.OutOfMemoryError error
      • From the heap
      • From the PermGen
      • Too large an array
      • Not enough native threads
    • Memory leaks
      • A leak-finding process
      • A step-by-step example using VisualVM
    • Types of GC strategies
      • The serial collector
      • The parallel collector
      • The concurrent collector
      • The G1 collector
    • Which collector to use
    • Setting VM parameters in WildFly
    • Having the relevant information available
    • VM parameters in production
      • verbose:gc
      • PrintGCDetails
      • PrintTenuringDistribution
      • loggc
    • Using tools
    • VM and GC stability
    • Summary
  • Chapter 4: Tuning WildFly
    • WildFly's history
    • WildFly's architecture
    • Various subsystem configurations
      • The thread pool executor subsystem
        • unbounded-queue-thread-pool
        • bounded-queue-thread-pool
        • blocking-bounded-queue-thread-pool
        • queueless-thread-pool
        • blocking-queueless-thread-pool
        • scheduled-thread-pool
      • Monitoring
        • The future of the thread subsystem
      • Java EE Connector Architecture and resource adapters
      • The Batch API subsystem
      • The Remoting subsystem
      • The Transactions subsystem
        • XA – Two Phase Commit (2PC)
    • Logging
      • Optimized logging code
      • Performance tuning logging in WildFly
        • Logging to the console
        • Logging to files
        • Using asynchronous logging to improve log throughput
        • Logging hierarchy and performance
        • Per-deployment logging
    • Summary
  • Chapter 5: EJB Tuning in WildFly
    • The history of EJBs
    • The different types of EJBs
      • Stateless Session Beans (SLSB)
      • Stateful Session Beans
      • Singleton Session Beans
      • Message Driven Beans (MDB)
    • Performance tuning EJBs in WildFly
      • Enabling detailed statistics
      • Optimizations of Local and Remote method calls
      • Session beans and transactions
      • Remote EJB calls
      • Optimizing Stateless Session Beans
        • Tuning the SLSB pool
      • Optimizing Stateful Session Beans
        • Disabling passivation for individual SFSB
      • Optimizing Singleton Session Beans
        • Adjust lock mechanisms and time-outs
        • Container Managed Concurrency versus Bean Managed Concurrency
        • Monitoring
      • Optimizing Message Driven Beans
    • Summary
  • Chapter 6: Tuning the Persistence Layer
    • Designing a good database
      • Database normalization and denormalization
      • Database partitioning
        • Horizontal partitioning
        • Vertical partitioning
      • Using indexes
    • Tuning the Java Database Connectivity API
      • Connection pooling
        • Performance tuning a connection pool in WildFly
      • Setting the proper fetch size
      • Using batch updates for bulk insert/updates
      • Prepared statements
      • Isolation levels
      • Tuning JDBC networking
    • Tuning JPA and Hibernate
      • Optimizing object retrieval
      • Transactional integrity and performance
      • Limiting retrieved data by pagination
      • Fetching parent and child objects
      • Combining pagination and JOIN fetches
      • Improving the speed of collection queries using batches
      • Minimizing query compilation with JPA-named queries
      • Improving the performance of bulk SQL statements
      • Entity caching
        • The first-level cache
        • The second-level cache
        • The query cache
        • Query hints
        • Entity versus query cache
        • Optimizing data synchronization
    • Summary
  • Chapter 7: Tuning the Web Container in WildFly
    • Enter Undertow
      • Undertow internals
      • HTTP Upgrades
      • The default caching of static resources
      • Server and container topologies
    • Using XNIO
      • NIO basics
      • XNIO Workers
    • Tuning Undertow
      • Worker
      • The buffer pool
    • Tuning the servlet container and JSP compilation
      • Tuning hints for Jastow
    • Using Apache as a frontend
      • HTTP and AJP
      • Configuration
        • The Apache HTTPD configuration
        • The WildFly configuration
    • Summary
  • Chapter 8: Tuning Web Applications and Services
    • Web applications
      • Choosing a web framework
      • The evolution of web frameworks
      • Tuning a web component – the data table
      • Tuning servlet/JSP applications
        • Choose the scope wisely
        • JSP use of HttpSession
        • JSP include
        • Compression
        • Asynchronous servlets
      • Undertow's proprietary solutions
      • Tuning JSF-based applications
        • Configuring JSF state saving efficiently
        • The project stage
        • JSF Immediate
        • Using AJAX support in JSF
        • Loading resource files efficiently
      • WebSockets
    • Services
      • Web services
        • Performance factors
      • RESTful services
    • Summary
  • Chapter 9: JMS and HornetQ
    • Introducing JMS
    • The message and its optimizations
    • Tuning the session
    • Tuning MessageProducer
    • Optimizing HornetQ
      • Persistence storage tuning
      • Handling large messages
      • Optimizing paging
      • Message deliverance optimizations
      • Flow control
      • Miscellaneous tips and tricks
      • Monitoring
    • Summary
  • Chapter 10: WildFly Clustering
    • Cluster
    • Load balancing
    • Replication
    • Failover, failback, and session state
    • High Availability
    • The real need of clustering
    • A single point of failure
    • WildFly clustering basics
      • JGroups
        • Tuning UDP transport
        • Tuning node fault detection
        • Tuning flow control
      • Infinispan
    • Clustering in Java EE and WildFly
      • Clustered EJBs
        • MDB
        • SLSB
        • SFSB
        • Load balancing
      • Clustered Persistence (JPA) layer
      • Clustered web applications
        • Load balancing with mod_cluster
      • Clustering the HornetQ messaging system
    • Summary

Arnold Johansson

Arnold Johansson is a versatile information technologist with a true passion for improving people, businesses, and organizations using "good tech".

As an early adapter of the Java language and its growing ecosystem, he is an outspoken proponent of secure Java Enterprise solutions and real Open Source software.

After nearly two decades as an IT consultant in many levels and verticals, Arnold now focuses on leading organizations on an architectural stable and efficient path of excellence.

Anders Welén

Anders Welén embraced the object-oriented techniques of the Java language early in life, and later evolved to Java Enterprise specifications. As a true believer and evangelist of Open Source, he naturally discovered the JBoss Application Server, which led to years of providing expert consultation, training, and support for the JBoss and Java EE infrastructures.

As a result, Anders has seen a lot of both good and bad architectures, software solutions, and projects, most of which were a struggle from time to time due to performance problems.

Whenever Anders, through presentations, consultation, training, and (in this case) a book, sees that what he's trying to explain is getting through and the audience is picking up on it and adopting it for their own challenges, it gives him a warm feeling inside.

Sorry, we don't have any reviews for this title yet.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

WildFly Performance Tuning +    Haskell Data Analysis Cookbook =
50% Off
the second eBook
Price for both: $43.05

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Tune and monitor an OS, a JVM, and WildFly with components and applications
  • Make various tuning tools work with WildFly
  • Configure and tune the JVM by analyzing its behavior
  • Understand numerous best practices and how-tos
  • Monitor and tune various JEE technologies within WildFly, such as EJBs, WebServices, and JSF-based applications
  • Know the ins-and-outs for getting the most out of the platform, its components, and surrounding infrastructure
  • Discover how to tune a clustered WildFly environment

In Detail

The hugely successful JBoss Application Server has been updated and is now called WildFly. This cutting edge technology provides a free JEE-certified platform for the software of today and tomorrow. Learning to tune such a platform for optimal performance is vital for a healthy business organization, efficient development, and the smooth running of operations.

This practical book explores how to tune one of the leading open source application servers in its latest reincarnation. In this book, you will learn what performance tuning is and how it can be performed on WildFly and the JVM using solely free and open source tools and utilities.

Learn about various free tools for performance monitoring and tuning, all focused on making them work with WildFly. The tuning journey ventures through the landscape of the major JEE technologies, EJB, Servlets, JPA, JSF, and JMS. Discover best practices for the internal high-performing web container Undertow, WebServices, and REST services so that you end your journey feeling confident in tuning WildFly for optimal performance.


Packed with practical examples, this book looks at a different aspect of performance tuning in each chapter and shows you how to apply them to their existing Java applications.

Who this book is for

Anyone with an interest in learning more and improving the performance of Java-based technology in general, all the way to WildFly in particular, will find this book useful.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software