Best Practice - Tomcat Performance Tuning for Pentaho



Similar documents
Best Practice - Pentaho and Tomcat Security

Tomcat Tuning. Mark Thomas April 2009

Scaling Progress OpenEdge Appservers. Syed Irfan Pasha Principal QA Engineer Progress Software

Apache and Tomcat Clustering Configuration Table of Contents

MID-TIER DEPLOYMENT KB

NetIQ Access Manager 4.1

Apache Tomcat Tuning for Production

How to Make the Client IP Address Available to the Back-end Server

Performance Test Report For OpenCRM. Submitted By: Softsmith Infotech.

mod_cluster A new httpd-based load balancer Brian Stansberry JBoss, a division of Red Hat

EQUELLA. Clustering Configuration Guide. Version 6.0

Enterprise Edition Scalability. ecommerce Framework Built to Scale Reading Time: 10 minutes

[TFS 4.1 ADVANCED GUIDE]

Configuring ActiveVOS Identity Service Using LDAP

Business white paper. HP Process Automation. Version 7.0. Server performance

SpagoBI Tomcat Clustering Using mod_jk and httpd on Centos - In-Memory Session Replication.

Configuring the NetBackup 7.7 Cloud Connector for use with StorReduce

Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November Pivotal Software, Inc. All rights reserved.

Deployment Checklist. Liferay Portal 6.1 Enterprise Edition

JMETER - MONITOR TEST PLAN

INCREASE SYSTEM AVAILABILITY BY LEVERAGING APACHE TOMCAT CLUSTERING

Agenda. Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat

Load Testing and Monitoring Web Applications in a Windows Environment

Siebel & Portal Performance Testing and Tuning GCP - IT Performance Practice

Intro to Load-Balancing Tomcat with httpd and mod_jk

Apache Tomcat & Reverse Proxies

.NET UI Load Balancing & Clustering

Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine

Load Balancing Web Applications

Project (Group) Management Installation Guide (Linux) Version 1.3. Copyright 2007 MGH

Configuring IIS 6 to Load Balance a JBoss 4.2 Adobe LiveCycle Enterprise Suite 2 (ES2) Cluster

Apache Tomcat Clustering

Performance and Scalability Overview

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

.NET UI Load Balancing & Failover

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

MANAGEMENT CONSOLE PERFORMANCE COMPARISON

SOLUTION BRIEF: SLCM R12.8 PERFORMANCE TEST RESULTS JANUARY, Submit and Approval Phase Results

TFE listener architecture. Matt Klein, Staff Software Engineer Twitter Front End

Service Manager and the Heartbleed Vulnerability (CVE )

Tuning Tableau Server for High Performance

Performance Testing. Configuration Parameters for Performance Testing

SOLUTION BRIEF: SLCM R12.7 PERFORMANCE TEST RESULTS JANUARY, Load Test Results for Submit and Approval Phases of Request Life Cycle

Table of Contents Introduction and System Requirements 9 Installing VMware Server 35

DATABASE. Pervasive PSQL Performance. Key Performance Features of Pervasive PSQL. Pervasive PSQL White Paper

High-Availability. Configurations for Liferay Portal. James Min. Senior Consultant / Sales Engineer, Liferay, Inc.

Advanced Liferay Architecture: Clustering and High Availability

Load Balancing BEA WebLogic Servers with F5 Networks BIG-IP v9

Network Configuration Settings

IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:

Glassfish Architecture.

JReport Server Deployment Scenarios

University of Maine System Liferay 6 EE Solution - RFP# ADDENDUM #01

How To Configure Apa Web Server For High Performance

Configuring Nex-Gen Web Load Balancer

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

Esri ArcGIS Server 10 for VMware Infrastructure

The Server.xml File. Containers APPENDIX A. The Server Container

Performance Optimization For Operational Risk Management Application On Azure Platform

Deploying BIG-IP LTM with Microsoft Lync Server 2010 and 2013

Alfresco Enterprise on AWS: Reference Architecture

STREAMEZZO RICH MEDIA SERVER

Performance White Paper

Scalability in Log Management

Filr 2.0 Administration Guide. April 2016

Japan Communication India Skill Development Center

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

ActiveVOS Performance Tuning

JasperServer Localization Guide Version 3.5

Alfresco Enterprise on Azure: Reference Architecture. September 2014

Configuring Apache HTTP Server With Pramati

How To Set Up A Shared Insight Cache Server On A Pc Or Macbook With A Virtual Environment On A Virtual Computer (For A Virtual) (For Pc Or Ipa) ( For Macbook) (Or Macbook). (For Macbook

HOB WebSecureProxy as an SSL Terminal for Clients

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Ahsay Offsite Backup Server v5.5. High Availability Option Setup Guide. Ahsay TM Online Backup - Development Department

Oracle Weblogic. Setup, Configuration, Tuning, and Considerations. Presented by: Michael Hogan Sr. Technical Consultant at Enkitec

Application Performance Testing Basics

CumuLogic Load Balancer Overview Guide. March CumuLogic Load Balancer Overview Guide 1

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Configuring a Jetty Container for SESM Applications

Implementing a Well- Performing and Reliable Portal

Chapter 1 - Web Server Management and Cluster Topology

1.0 Hardware Requirements:

Neelesh Kamkolkar, Product Manager. A Guide to Scaling Tableau Server for Self-Service Analytics

Technical White Paper

24x7 Scheduler Multi-platform Edition 5.2

Citrix NetScaler Load Balancer Configuration

Introducing the Microsoft IIS deployment guide

Introduction. AppDynamics for Databases Version Page 1

EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications

WHITE PAPER. Domo Advanced Architecture

Auto-Scaling Model for Cloud Computing System

Load balancing MySQL with HaProxy. Peter Boros Percona 4/23/13 Santa Clara, CA

Oracle WebLogic Server 11g Administration

tc Server Administration Guide

Apache Jakarta Tomcat

Oracle Enterprise Manager

Transcription:

Best Practice - Tomcat Performance Tuning for Pentaho

This page has intentionally been left blank.

Contents Overview... 1 Tuning Tomcat for Performance... 2 Choose the Right Connector... 2 Set the Right Thread Pool Size... 2 Consider Turning-on Compression... 3 Host Static Content on a Web Server... 3 Conclusion... 3 Best Practice Check List... 4

This page has intentionally been left blank.

Overview We have collected a set of best practice recommendations for you to leverage when you need to do some performance tuning for Tomcat. Keep these Pentaho Architecture principles in mind while you are working through this document: 1. Architecture is important, above all else. 2. Platforms are always evolving: sometimes you will have to think creatively. Some of the things discussed here for tuning Tomcat include choosing the right connector, setting the correct thread-pool size, and hosting static content on a web server. The intention of this document is to speak about topics generally; however, these are the specific versions covered here: Software Version Pentaho 6.0, 6.1 Apache Tomcat 7.0, 8.0 Tomcat Performance Tuning PENTAHO 1

Tuning Tomcat for Performance As with security, the default Tomcat is not configured for performance out-of-the-box, because each environment is different. However, Tomcat does provide a few configuration options to improve performance. Choose the Right Connector The configured connectors determine how browser and other clients access the applications deployed within Tomcat. However, Tomcat provides different types of connections depending on the version. On Tomcat 7, the default HTTP connector is a blocking connector where each worker thread is consumed until it s associated connection is complete. However, a non-blocking connector is also available which typically leads to better thread management with longer running requests. Performance tests suggest that the non-blocking provides better performance with longer running requests. For Tomcat 7, use the org.apache.coyote.http11.http11nioprotocol with the connector within the $tomcat/conf/server.xml. <Connector connectiontimeout="20000" maxthreads="1000" port="8080" redirectport="8443" protocol="org.apache.coyote.http11.http11nioprotocol"/> Tomcat 8 s default HTTP connection is a non-blocking connector. Set the Right Thread Pool Size Each Connector can be configured with a thread pool to process the requests it receives. The thread pool should be configured for your anticipated concurrent connections. The default maximum thread pool size within Tomcat 7 is 200. Consider the following scenario: If the solution is expecting ~300 new requests per second with each request requiring 2.5 seconds to complete, at any given time there will be ~750 requests that need to be handled simultaneously. The server in this situation should have ~750 processing threads at startup with potentially ~1000 processing threads at maximum to handle extremely high loads. Using a non-blocking Connector may reduce the amount of threads needed. However, it is recommended to start with a number of threads to meet the anticipated concurrent connection volume and set the maximum to be the anticipated peak with some buffer. Only reduce the thread count after analyzing the performance and thread usage of the solution under the anticipated usage load. Tomcat Performance Tuning PENTAHO 2

For the Pentaho BA Server, clustering the Tomcat instance will allow the thread pool to be virtually distributed across the nodes of the cluster. Thus, each server in the cluster will need less within its thread pool. This may be desired if the workload of a single server is too high. The example below sets a Connector with a minimum thread count of 300 and a maximum of 500. The prestartminsparethreads attribute will cause the connector to pre-populate the thread pool with the configured minimum. The maxidletime sets the number milliseconds after which idle threads are released, allowing the thread pool to shrink as volume decreases. <Connector connectiontimeout="20000" port="8080" redirectport="8443" maxthreads="500" minsparethreads="300" prestartminsparethreads="true" maxidletime="60000" protocol="org.apache.coyote.http11.http11nioprotocol"/> Consider Turning-on Compression Tomcat has the ability to compress the content it sends to the browser and other applications. This generally improves performance by reducing the network traffic but comes at the cost of compressing and decompressing. It is a general practice to turn on compression. However, the performance impact depends upon the usage pattern and the content. The recommendation is to enable compression while in development phase of the solution but compare it to an uncompressed configuration during testing. It is also possible to set the compression attribute to a file size, indicating that only files / content larger than this value will be compressed. <Connector connectiontimeout="20000" port="8080" redirectport="8443" compression="on" maxthreads="500" minsparethreads="300" prestartminsparethreads="true" maxidletime="60000" /> Host Static Content on a Web Server Tomcat is designed to deliver dynamic web content. It is a standing practice to front Tomcat with a web server such as Apache HTTPD, allowing the web server to serve the static content. Pentaho does not support deploying any portion of the Pentaho web applications on a web server; however, it is a recommended practice to store report images or any static content referenced by dashboards on some web server versus within the Tomcat hosting Pentaho. Use Apache httpd with SSL for Delivering Static Content in the Pentaho documentation has more information. Conclusion The guidelines presented in this document are generic in that they were not written with any particular solution in mind. They are considered guidelines and a starting point. These guidelines must be tested and validated within development or QA before being placed into production. Tomcat Performance Tuning PENTAHO 3

Best Practice Check List This checklist is designed for you to use while you are thinking about how to secure and tune the performance of Tomcat. The Pentaho Enterprise Architecture Group is here to help you with any questions that arise during your implementation. Name of the Project Date of the Review Name of the Reviewer Considerations/Think About: Response COMMENTS, WHY? Performance Tuning Tomcat: Did you choose the right connector? YES NO Have you set the right thread pool size? YES NO Did you consider turning on compression? YES NO Are you hosting static content on a web server? YES NO If you are using this best practices document, we would be happy if you would leave us a comment or suggestion to let us know what you think! This will help us learn about who is using our best practices, and also give us some insight as to what you find helpful about them. As always, if you have a more information or a solution that would enhance this document, we would love to hear about that, too. Tomcat Performance Tuning PENTAHO 4