Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Portal
Load limits Auth. schemes Login / home page Logging configuration
J2EE
Memory Threads Sessions
Java iViews
Code for performance Profiling Testing/evaluation
Front-end
Browser
The Middle
Proxy/Cache Hardware devices (SSL accelerators, Proxies) Network Location
Please review the Fine-Tuning Guide before making any changes to your portal systems This presentation relies heavily on real-world experience gained from a number of portal projects
Much of the experience has been distilled into the Fine Tuning Guide
SAP AG 2004, slide 7
Proxy? Cache?
Load Balancer
Web Server
Web Server
J2EE Cluster
Dispatcher Dispatcher
J2EE Cluster
Dispatcher Dispatcher
Server
Server
Server
Server
Server
Server
Note 492222 outlines the O/S dependencies for Unix systems For Solaris, the TCP/IP stack may need some adjustments
Refer to the topic TCP/IP Tunable Parameters in Solaris Tunable Parameters Reference Manual, at:
http://docs.sun.com/db/doc/816-0607 Example: Modify the /etc/system file and configure "table size" and "wait interval" set tcp: tcp_conn_hash_size=32768 (default is 512K) set tcp_tcp_time_wait_interval=60000 (1 minute)
Some J2EE parameters may not be optimally configured after installation Each customer's system is different and must be tuned appropriately A number of configurable parameters are explained in the Tuning Guide Performance testing will identify areas for improvement
-Xms<size> -XX:NewRatio=3
-XX:NewSize=[ms] / ([NewRatio] + 1)
Monitor GC events with JVM parameter verbose:gc GC events will be written to the system log: [GC 2095K->1709K(2160K), 0.0017628 secs] [Full GC 2161K->1018K(2276K), 0.0576353 secs] GC = Small (regular GC) short duration Full GC = longer duration where all objects are queried Increase heap size if you continue to see Full GC events in the log
Timeout manager
A non-distributed system for scheduling tasks for future execution in a background thread
HTTP service
Receives HTTP requests from clients and responds to them by returning the HTML files that correspond to the requested URL
DBPool service
Creates and stores database connections so that they can be reused
Along with the transaction service, DBPool manages transactions and synchronizes the transactions in the server with those in the database
View the Logs by selecting the log detail you want (INFO, WARNING, etc.) Click "Display" to view
SAP AG 2004, slide 26
Analyze the displayed logs for timing issues and events that take longer than expected
Content Considerations
Server-side caching
Reduce server and browser response time by caching iViews and pages
In the iView or Page Editor: modify the Cache Level for each iView/page and set to "User, Shared, or Session"
With version 6.0, entire pages can be cached and sent to the browser without consulting the back-end systems Caching of pre-rendered content reduces the network traffic and load on back-end systems Most helpful with static content or content that changes infrequently Note: URL iViews cannot currently be cached on the server side with SP2
SAP AG 2004, slide 31
Reduce the size of graphic images, Javascript, or other assets contained in your content Limit the number of roles the user has, or use the "Merge ID" feature to collapse multiple worksets/roles in order to reduce the navigation hierarchy
URL (isolated)
Isolated iViews are iViews that are fetched by an <iframe> in a separate request by the client The Page Builder creates an <iframe src="iView source" /> statement for each iView All requests go directly from the client to the (Web) content source
Second request to the iView goes directly from the client to the (Web) content source
Embedded Simple HTML sources Sources with High usage of scripting and cookies Download volume Number of requests
SAP AG 2004, slide 34
Isolated No restrictions Sometimes the only option Lower (only iView) High (number of iViews)
Use the new JARM (Java Application Responsetime Measurement) API to collect monitoring information for iViews that are problematic (requires small code modifications to your Java iViews) For information regarding JARM, go to http://service.sap.com and search for "JARM" or "Java Monitoring Overview"
See SDN article: "Java Development Techniques for Improving Performance of EP iViews" for details
SAP AG 2004, slide 37
Refer to the section on Accessing the Enterprise Portal under the topic Setting Internet Browser Options in the End-User Guide at: http://help.sap.com/ep
Software Proxy/Cache servers such as Squid or Apache are inexpensive, but do not offer comparable performance to commercial products
Some commercial software proxies are supported builds of Squid or Apache
Hardware Proxy/Cache servers such as NetCache or Cache Engine are more expensive but offer hit rates to 50-60% An excellent resource is:
http://www.web-caching.com
Careful placement of components with respect to proximity to users or data sources can yield significant improvements
Impacts performance of the whole solution Also consider position of firewalls and proxies
Packet sniffers can also be useful in tracing total byte counts and network throughput
Details at http://service.sap.com/goinglivecheck
Resources
SAP Service Marketplace (service.sap.com)
How to Fine Tune Enterprise Portal 6.0 How to Tune SAP J2EE Engine 620
Testing tips
Understand your testing tool! Utilize system monitoring capabilities Organize your data and make it meaningful
For example, SUN provides a comprehensive toolset for performance measurement And plenty of documentation online on how to use and understand the data.
http://developers.sun.com/solaris/articles/performance_tools.html
http://developers.sun.com/solaris/articles/prstat.html
Your Turn!
Q&A
Will Carlton
SAP NetWeaver RIG (US) Development Enterprise Portal
william.carlton@sap.com