Home > Store

Virtualizing and Tuning Large Scale Java Platforms

Register your product to gain access to bonus material or receive a coupon.

Virtualizing and Tuning Large Scale Java Platforms


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2014
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-349120-X
  • ISBN-13: 978-0-13-349120-3

Virtualizing and Tuning Large-Scale Java Platforms

Technical best practices and real-world tips for optimizing enterprise Java applications on VMware vSphere®

Enterprises no longer ask, “Can Java be virtualized”? Today, they ask, “Just how large can we scale virtualized Java application platforms, and just how efficiently can we tune them?” Now, the leading expert on Java virtualization answers these questions, offering detailed technical information you can apply in any production or QA/test environment.

Emad Benjamin has spent nine years virtualizing VMware’s own enterprise Java applications and working with nearly 300 leading VMware customers on projects of all types and sizes—from 100 JVMs to 10,000+, with heaps from 1GB to 360GB, and including massive big-data applications built on clustered JVMs. Reflecting all this experience, he shows you how to successfully size and tune any Java workload.

This reference and performance “cookbook” identifies high-value optimization opportunities that apply to physical environments, virtual environments, or both. You learn how to rationalize and scale existing Java infrastructure, modernize architecture for new applications, and systematically benchmark and improve every aspect of virtualized Java performance. Throughout, Benjamin offers real performance studies, specific advice, and “from-the-trenches” insights into monitoring and troubleshooting.

Coverage includes

--Performance issues associated with large-scale Java platforms, including consolidation, elasticity, and flexibility

--Technical considerations arising from theoretical and practical limits of Java platforms

--Building horizontal in-memory databases with VMware vFabric SQLFire to improve scalability and response times

--Tuning large-scale Java using throughput/parallel GC and Concurrent Mark and Sweep (CMS) techniques

--Designing and sizing a new virtualized Java environment

--Designing and sizing new large-scale Java platforms when migrating from physical to virtualized deployments

--Designing and sizing large-scale Java platforms for latency-sensitive in-memory databases

--Real-world performance studies: SQLFire vs. RDBMS, Spring-based Java web apps, vFabric SpringTrader, application tiers, data tiers, and more

--Performance differences between ESXi3, 4.1, and 5

--Best-practice considerations for each type of workload: architecture, performance, design, sizing, and high availability

--Identifying bottlenecks in the load balancer, web server, Java application server, or DB Server tiers

--Advanced vSphere Java performance troubleshooting with esxtop

--Performance FAQs: answers to specific questions enterprise customers have asked



Click here for a link to a video session by Emad Benjamin: http://www.infoq.com/presentations/Virtualizing-Tuning-JVM. In it, Emad Benjamin explains how to deploy and tune a JVM on a virtual infrastructure (vSphere), and how to tune the garbage collector in this environment.

Sample Content

Online Sample Chapter

Introduction to Large-Scale Java Platforms

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

Table of Contents

Preface xv

Chapter 1 Introduction to Large-Scale Java Platforms 1

Large-Scale Java Platform Categories 1

Large-Scale Java Platform Trends and Requirements 2

    Compute-Resource Consolidation 2

    JVM Instance Consolidation 3

    Elasticity and Flexibility 3

    Performance 4

Large-Scale Java Platform Technical Considerations 4

    Theoretical and Practical Limits of Java Platforms 4

    NUMA 9

    Most Common JVM Size Found in Production Environments 14

    Horizontal Scaling Versus Vertical Scaling of JVMs and VMs 15

Summary 20

Chapter 2 Modern Scalable Data Platforms 21

SQLFire Topologies 24

    Client/Server Topology 24

    Peer-to-Peer Topology 27

    Redundancy Zones 28

    Global Multisite Topology 28

SQLFire Features 30

    Server Groups 32

    Partitioning 34

    Redundancy 37

    Colocation 38

    Disk Persistence 39

    Transactions 41

    Cache Plug-In 46

    Listeners 47

    Writers 50

    Asynchronous Listeners 52

    DBSynchronizer 54

    SQLF Commands and DDLUtils 57

Active-Active Architectures and Modern Data Platforms 57

Chapter Summary 61

Chapter 3 Tuning Large-Scale Java Platforms 63

GC Tuning Approach 70

    Step A: Young Generation Tuning 71

    Step B: Old Generation Tuning 76

    Step C: Survivor Spaces Tuning 78

Chapter Summary 78

Chapter 4 Designing and Sizing Large-Scale Java Platforms 79

Designing and Sizing a New Environment for a Virtualized Large-Scale Java Platform 79

    Step1: Establishing Your Current Production Load Profi le 80

    Step 2: Establish a Benchmark 82

    Step 3: Size the Production Environment 95

Sizing vFabric SQLFire Java Platforms: Category 2 Workloads 96

    Step A: Determine Entity Groups 97

    Step B: Determine the Memory Size of the Data Fabric 100

    Step C: Establish Building Block VM and JVM Size and How Many vFabric SQLFire Members Are Needed 105

    Understanding the Internal Memory Sections of HotSpot JVM 106

    Understanding NUMA Implications on Sizing Large VMs and JVMs 108

    vFabric SQLFire Sizing Example 112

Chapter Summary 119

Chapter 5 Performance Studies 121

SQLFire Versus RDBMS Performance Study 121

    Performance Results 123

    Summary of Findings 126

The Olio Workload on tc Server and vSphere Performance Study 127

    Looking at the Results 127

SpringTrader Performance Study 131

    Application and Data Tier vSphere Confi gurations 133

    The SpringTrader Performance Study Results 137

Performance Differences Between ESXi 3, 4.1, and 5 139

    CPU Scheduling Enhancements 140

    Memory Enhancements 140

vSphere 5 Performance Enhancements 142

Chapter Summary 143

Chapter 6 Best Practices 145

Enterprise Java Applications on vSphere Best Practices (Category 1) 148

    VM Sizing and Confi guration Best Practices 148

    vCPU for VM Best Practices 149

    VM Memory Size Best Practices 150

    VM Timekeeping Best Practices 156

    Vertical Scalability Best Practices 156

Horizontal Scalability, Clusters, and Pools Best Practices 158

    Inter-Tier Confi guration Best Practices 160

    High-Level vSphere Best Practices 165

SQLFire Best Practices and SQLFire on vSphere Best Practices (Category 2 JVM Workload Best Practices) 166

    SQLFire Best Practices 168

    vFabric SQLFire Best Practices on vSphere 173

Category 3 Workloads Best Practices 181

    IBM JVM and Oracle jRockit JVMs 181

GC Policy Selection 184

    IBM GC Choices 186

    Oracle jRockit GC Policies 187

Chapter Summary 187

Chapter 7 Monitoring and Troubleshooting Primer 189

Open a Support-Request Ticket 191

Collecting Metrics from vCenter 191

Troubleshooting Techniques for vSphere with esxtop 195

Java Troubleshooting Primer 198

    Troubleshooting Java Memory Problems 202

    Troubleshooting Java Thread Contentions 203

Chapter Summary 204

Appendix FAQs 205

Glossary 229

Best Practices

Best Practice 1: Common Distributed Data Platform 24

Best Practice 2: Client/Server Topology 26

Best Practice 3: Peer-to-Peer Multihomed Machines 27

Best Practice 4: Multisite 29

Best Practice 5: Use Server Groups 33

Best Practice 6: Horizontal Partitioning 37

Best Practice 7: Redundancy 38

Best Practice 8: Colocation 38

Best Practice 9: Disk Persistence 40

Best Practice 10: Transactions 45

Best Practice 11: RowLoader 47

Best Practice 12: Listeners 49

Best Practice 13: Writers 51

Best Practice 14: Asynchronous Listeners 53

Best Practice 15: DBSynchronizer 55

Best Practice 16: VM Sizing and VM-to-JVM Ratio Through a Performance Load Test 149

Best Practice 17: VM vCPU CPU Overcommit 149

Best Practice 18: VM vCPU, Do Not Oversubscribe to CPU Cycles That You Don’t Really Need 150

Best Practice 19: VM Memory Sizing 152

Best Practice 20: Set Memory Reservation for VM Memory Needs 154

Best Practice 21: Use of Large Pages 154

Best Practice 22: Use an NTP Source 156

Best Practice 23: Hot Add or Remove CPU/Memory 157

Best Practice 24: Use vSphere Host Clusters 158

Best Practice 25: Use Resource Pools 159

Best Practice 26: Use Affi nity Rules 159

Best Practice 27: Use vSphere-Aware Load Balancers 160

Best Practice 28: Establish Appropriate Thread Ratios That Prevents Bottlenecks (HTTP threads:Java threads:DB Connections Ratio) 160

Best Practice 29: Apache Web Server Sizing 161

Best Practice 30: Load-Balancer Algorithm Choice and VM Symmetry 164

Best Practice 31: vSphere 5.1 165

Best Practice 32: vSphere Networking 165

Best Practice 33: vSphere Storage 166

Best Practice 34: vSphere Host 166

Best Practice 35: JVM Version 168

Best Practice 36: Use Parallel and CMS GC Policy Combination 168

Best Practice 37: Set Initial Heap Equal to Maximum Heap 170

Best Practice 38: Disable Calls to System.gc() 171

Best Practice 39: New Generation Size 171

Best Practice 40: Using 32-Bit Addressing in a 64-Bit JVM 171

Best Practice 41: Stack Size 172

Best Practice 42: Perm Size 172

Best Practice 43: Table Placements in a JVM 172

Best Practice 44: Enable Hyperthreading and Do Not Overcommit CPU 173

Best Practice 45: CPU Cache Sharing 175

Best Practice 46: vFabric SQLFire Member Server, JVM and VM Ratio 175

Best Practice 47: VM Placement 175

Best Practice 48: Set VM Memory Reservation 175

Best Practice 49: vMotion, DRS Cluster, and vFabric SQLFire Server 176

Best Practice 50: VMware HA and vFabric SQLFire 177

Best Practice 51: Guest OS 177

Best Practice 52: Physical NIC 177

Best Practice 53: Virtual NIC 178

Best Practice 54: Troubleshooting SYN Cookies 179

Best Practice 55: Storage 181

9780133491203    TOC    12/3/2013


Submit Errata

More Information

Pearson IT Certification Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from Pearson IT Certification and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about Pearson IT Certification products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites; develop new products and services; conduct educational research; and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by Adobe Press. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.pearsonitcertification.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020