This document provides an overview of ways to improve performance for EAServer applications. It includes suggestions for server-level and component properties, and for design and coding practices.
There are many variables involved for application throughput and response times. In addition to tweaking the code in your application for optimum performance, you can tune EAServer based on application specifics as well.
But where do you start? What parameters are available? How will changing them affect performance? This paper can serve as a guide to give you a point of reference to start from. As such, there is no silver bullet given, but rather a comprehensive look at what performance tuning is available in EAServer.
Some of the material presented here only applies to EAServer 4.1+, although much of it applies to older versions as well. Be sure to check the EAServer documentation for the version you are using for clarifications and additional details.
Section 1 General EAServer Tuning
Section 2 EAServer Clusters
Section 3 Components
- General
- Service
- Java
- EJBs
- Web (JSPs and Servlets)
- C++
- C
- ActiveX
- PowerBuilder
Section 5 Client Applications
Section 6 Protocols
Section 7 Web server redirector plug-ins
Section 8 Database Access
Section 9 Web Services Toolkit
Section 10 System-Level Tuning and Sizing
Section 11 Runtime Monitoring
Section 12 PowerDynamo
Section 13 Localization
Section 14 Development Environment
With the exception on Section 14, these suggestions focus on improving performance in a production environment.
All of these recommendations are general guidelines. Results may vary depending on the design of your application, hardware and network configuration, and other factors. For best results, you should monitor and measure performance as you fine-tune the configuration and application.
| Section 1: General EAServer Tuning |
This section contains suggestions to help improve overall performance of EAServer, regardless of the type of components, features implemented, or business logic used. Follow these suggestions for every EAServer installation.
| Category | Performance Considerations | More Information |
| HTTP Request Logging | By default, EAServer logs information about every HTTP request made. To improve the speed at which requests are served, you can disable the HTTP request log. | "HTTP Config", and "HTTP logging and statistics" in EAServer System Administration Guide |
| HTTP Threads |
The HTTP thread settings allow you to balance memory resources. A maximum value set too high needlessly uses memory resources. To tune this setting, monitor the total number of hits listed in the httpstat.dat file for indications of a heavily loaded server, and adjust the maximum thread setting as necessary. Setting this number too high will result in thrashing, with many threads waiting for a slice of CPU time. As a general guideline, consider a limit of 100 clients per CPU on Solaris, and 75 clients per CPU on Windows. · com.sybase.jaguar.server.http.maxthreads |
Section 10 System-Level Tuning and Sizing "HTTP Config" in EAServer System Administration Guide |
| IIOP Connections | The com.sybase.jaguar.server.maxconnections property should be set to accommodate the number of IIOP connections you expect. By default, this property is set to 30, which is probably too small for most production applications. | "Configuring a Server" in EAServer System Administration Guide |
| Maximum Server threads | The com.sybase.jaguar.server.maxthreads property specifies the total number of combined HTTP and IIOP threads. As a general guideline, set this property as follows: Extra threads are needed for service components, thread manager and message service. If you are not calculating precisely, a guideline is to add another 50 threads. Important Note: See component Bind Thread property -- components with this setting require twice as many threads. |
"Configuring a Server" in EAServer System Administration Guide |
| Server stack size |
Stack size determines how many client requests can be served simultaneously. If there are a large number of clients utilizing the server, you may want to reduce the default stack size, which is the amount of memory reserved for the call stack associated with each thread. For Unix, set the stack size using the com.sybase.jaguar.server.stacksize property. |
"Configuring server stack size" in EAServer System Administration Guide |
| JVM Heap Size |
You can specify the minimum and maximum JVM heap size with com.sybase.jaguar.server.jvm.maxHeapSize and com.sybase.jaguar.server.jvm.minHeapSize (This property is valid for any version of the JVM) |
"Repository Properties Reference" in EAServer System Administration Guide Memory Management within Java Processes |
| JVM 1.3 Flags | These flags are specific to JDK 1.3, and are added using the EAServer property com.sybase.jaguar.server.jvm.options. NT & Solaris flags
Solaris-Only flags
|
In-depth documentation of the flags is provided at Performance Documentation for the Java HotSpot Virtual Machine |
| JIT |
Allow Just-In-Time compiling (JIT) by setting the com.sybase.jaguar.server.jvm.nojit property to false. JIT converts Java bytecode into native machine code, which generally runs much faster than when the bytecode is executed by the interpreter. |
"Repository Properties Reference" in EAServer System Administration Guide Just-In-Time Compilers on Java Developer Connection |
| HotSpot VM |
For improved performance, EAServer 4.0+ can run with JDK 1.3 and the Java HotSpot virtual machine. On some platforms, EAServer can also use the Java HotSpot VM with JDK 1.2. |
"Creating and Configuring Servers" in EAServer System Administration Guide Java HotSpot Performance Engine Architecture |
| Tracing and Debugging |
Be sure all unnecessary tracing is off. This includes the server-level trace options for Attentions, Network Driver APIs, Network Driver Requests, Protocol Data, Protocol Headers, Servlets, JAAS Debug, JCM Trace. |
"Log/Trace", and "Repository Properties Reference" in EAServer System Administration Guide |
| Static Page Caching |
EAServer 4.1+ supports caching of static content. Static page caching can increase performance by caching static files in memory. You can configure the cache size, which files are cached, and how long the cached content is stored.
|
"Static Page Caching", "Creating and Configuring Servers", and "Repository Properties Reference" in EAServer System Administration Guide |
| Random Seed | EAServer requires a random seed to initialize the random number generation used in cryptographic algorithms. The data used as the seed for the random number generation depends on your platform. You can set the JAGUAR_RANDOMSEED variable to improve EAServer performance without diminishing the randomness of the seeding data. | "Operating system configuration" in EAServer System Administration Guide |
| Classpath | Check the classpath and bootclasspath in the the system environment and/or server start script to ensure that it is clean and that the order is appropriate |






