SAP NetWeaver Best Practices Guide Performance Best Practices Guide for SAP NetWeaver Portal 7.3 Applicable Releases: SAP NetWeaver 7.3 Document Version 1.0 June 2012
Copyright 2012 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/os, POWER, POWER5, OpenPower and PowerPC are trademarks or registered trademarks of IBM Corporation. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within these materials. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages. SAP NetWeaver How-to Guides are intended to simplify the product implementation. While specific product features and procedures typically are explained in a practical business context, it is not implied that those features and procedures are the only approach in solving a specific business problem using SAP NetWeaver. Should you wish to receive additional information, clarification or support, please refer to SAP Consulting. Any software coding and/or code lines / strings ( Code ) included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent. Disclaimer Some components of this product are based on Java. Any code change in these components may cause unpredictable and severe malfunctions and is therefore expressively prohibited, as is any decompilation of these components. Any Java Source Code delivered with this product is only to be used by SAP s Support Services and may not be modified or altered in any way.
Document History Document Version Description 1.00 First official release of this document
Contents 1. Portal Setup - Identifying the Components... 4 2. Tuning flow - Verifying Performance... 6 3. Tuning the portal... 7 4. Analyzing Performance Problems... 9
Performance Best Practices The purpose of this guide is to help the system administrator to maximize the performance of SAP NetWeaver Portal. 1. Portal Setup - Identifying the Components To identify problematic areas, the entire system landscape should be reviewed. For each of the components the compatibility must be verified. For each of these components the performance measures of CPU, memory, and connectivity (Network roundtrips and throughput) should be considered. Server layered view 1. SAP NetWeaver Portal is a web container extension and this guide deals with this layer only. 2. It runs on top of SAP Application Server Java. 3. AS Java runs inside a SAP JVM. 4. Web gateway is provided by SAP Internet Communication Manager (ICM). For improving server performance these four layers should be considered Recommended tools: Diagnostics server (root cause analysis) is provided with SAP Solution Manager. See SAP Note 797147: http://service.sap.com/diagnostics SAP JVM Monitoring tools and SAP JVM Tools SAPJVM Profiler SDN Link Java Memory Analyzer Tool: SAP Help MAT Project Java Thread Dump Analyzer is included with Memory Analyzer Tool MAT Project Persistency layer In the portal this is the database layer. The portal uses a few tables in the AS Java scheme. Recommended tools: NWA: Using Open SQL Monitors Client Client side measurements are based upon: 1. measuring Client OS browser process resources (such as process memory and CPU times) 2. Measuring network KPIs (such as round trips, data size, browser caching) June 2012 Page 4
A list of browsers compatible with SAP NetWeaverPortal can be found in the SAP PAM available at: Web Browser Dependencies SAP NetWeaver Portal uses the browser cache to improve performance. It is strongly recommended to enable full functionality of the browser cache for the end users. Recommended tools: OS utilities to measure process resources HTTP sniffers, HTTPWatch Browser specific tools, such as IE8 developer tools and Firefox Firebug Network Network architecture may consist of various topologies and the relevant expertise is required for correct network planning. When investigating performance overhead, the common approach is eliminating network overheads by configuration or during analysis. Using HTTP GZip compression is recommended for data sizes over 1kb. Recommended tools: Sniffer Backend application server Back-end application server performance issues should be treated using the specific back-end practices. Back-end connectivity to the portal or to a client browser must be verified. An external user repository (such as LDAP) can be considered as a back end. Recommended tools: Back-end specific monitoring utilities - ABAP Workload monitor SAP NetWeaver Administrator - NWA Monitoring (tools & logs) June 2012 Page 5
2. Tuning flow - Verifying Performance When applying a new portal system, there are a few practices that should be taken care of.the following paragraphs describe the procedures that may be used for tuning your portal server. 1. Sizing SAP offers a methodology to anticipate the required amounts of hardware resources while planning the new landscape. The sizing procedure is based on initial measurements, which are done at SAP, and represent certain content types. By calculating the number of concurrent items the implementation team can tell how much hardware is required to have the desired total throughput. For more information on sizing, go to http://service.sap.com/sizing. 2. Fine tuning After initial setup is complete, the SAP NetWeaver system can be fine tuned to best fit customer requirements and limitations. Using zero admin templates eliminates most of the VM tuning arguments, in case VM tuning is required, check notes: Note 1248926 - AS Java VM Parameters for NetWeaver 7.1 based products Note 723909 - Java VM settings for J2EE 6.40/7.0 (for relevant JVM parameters) Logs Configuration - It is recommended to minimize the amount of logging and tracing in order to avoid the impact of expensive I/O activity. Caches Configuration - Enabling the Portal caches can improve the Portal performance, for more info, please review the SCN Article: SAP NetWeaver Portal 7.3 - Tuning Caches. At this time, it is recommended to verify the stability and scalability over a simple content scenario. 3. Volume test optimization SAP provides guidance for tuning various components to run in the best manner. For more information, review http://service.sap.com/diagnostics. During and at the end of the tuning phase, we recommend running stability and scalability tests over a rich content scenario. June 2012 Page 6
3. Tuning the portal SAP JVM Configuration and Setup of SAP JVM Tuning the Applicatioin Server Configuring JVM parameters on AS Java o Set <-XX:SoftRefLRUPolicyMSPerMB=1000> (from default 1) Avoiding session leaks - Tracing Single User Sessions Tuning HTTP Provider Service Enabling production mode UME Cache Optimizing Performance With the UME Cache PCD Cache tuning The PCD uses a transient cache for all objects which are loaded from the database persistence. This cache is designed to be memory sensitive meaning that frequently used objects, those that are currently in use by client applications or likely to be used soon again, are kept in cache as long as there is enough memory. Read more and implement using Note 905211 - PCD Cache Optimizer Tuning PCD administration reference for 7.30 Configuring PCD Properties The following defaults are set for Portal 7.30: Pcd.Xfs.Cache.StartCacheOptimizer = false Pcd.Xfs.Cache.HardReferenceLimit = 1000 June 2012 Page 7
Navigation service To improve performance, the portal caches each set of navigation nodes required by a user. If a user accesses a navigation hierarchy that was previously accessed, the portal can retrieve the navigation hierarchy from the cache instead of generating it again. Caching Navigation Nodes Multiple locale configurations - Additional tuning is required: Configure the <defaultlocale> property with locales that should be added to the cache. Open the navigation service properties via NWA and set the property <portal.navigation.connector.cache.defaultlocales>. It should be configured as follows: en_us,de_ch, etc... Additional Search Provider configuration tunings: Configure all the languages in the Roles Index Provider click on Define Suggestion Languages Portal Runtime Cache Configuring the Portal Runtime Properties Activating and Clearing the Portal Runtime Cache OBN Cache Activating the OBN Cache June 2012 Page 8
4. Analyzing Performance Problems High-level steps for analyzing performance problems: 1. First identify the software components involved in the business scenario and the interaction between them. 2. Locate the appropriate performance monitoring tools for the component. 3. Reproduce the problematic scenario and monitor the relevant metrics of every component involved in the flow. 4. Analyze the results. CPU Verifying and improving CPU consumption Java Application Profiling with the SAP JVM Profiler End to end root cause analysis diagnostics Memory For more info on memory analysis and tuning: Java Memory Analysis Monitoring the GC Finding Memory Leaks with SAP Memory Analyzer June 2012 Page 9