The server may falter under stress due to limitations of the EAServer and Java Virtual Machine (JVM) memory constraints. You must perform stress testing under expected peak load conditions to determine optimum values for your deployment. The optimum settings for these settings depend on your application and machine configuration. To tune these parameters, make the following changes in the EAServer Manager Server Properties dialog box, then restart the server:
All Properties tab, property com.sybase.jaguar.server.jvm.maxHeapSize
This is the memory space that the VM reserves in the 32-bit virtual memory space, the heap (object) memory used by the VM cannot exceed this. The default value of this property is 1.5GB. This is too high to run any large number of threads, since this space will be reserved in virtual memory regardless of whether the heap ever grows to this size or not. As the intel virtual address space is only 4GB and certain areas of this are reserved, this value must be carefully tuned so that there is space for a stack for each thread that can exist at once. Set this property to the smallest value that still allows the application to function under expected peak loads. You can use the top tool to monitor memory conditions. Values to try are 128m, 256m, 384m, 512m, and 768m. In all likelihood, you should never need more 768M unless the application software is poorly designed.
All Properties tab, property com.sybase.jaguar.server.jvm.minHeapSize
This is the initial size of heap that the VM monitors with respect to garbage collection, etc. The VM will grow its internal heap up to maxHeapSize as necessary, but the VM does reserve maxHeapSize in the virtual memory space on startup. Thus having this too high reduces the maximum amount of threads that can be spawned before running out of virtual memory space. For stress conditions, the maxHeapSize and minHeapSize values should be the same to eliminate the CPU overhead of dynamically growing the heap.
All Properties tab, property com.sybase.jaguar.server.jvm.options
This property configures additional startup options for the
Java VM. The -XssStackSize
parameter
can be tuned to configure the stack size for Java threads. StackSize is
the amount of virtual memory reserved for the stack of each Java
thread. The stack must be large enough to accommodate parameters
passed in component dispatcher and intercomponent calls. However,
if the value is too high, it limits the maximum number of threads that
can be spawned. To run N threads, there must
at least N x StackSize of free
memory available. Set the stack size to the smallest value that
still allows the application to run. In internal Sybase testing,
usual values are 256k or 512k for the applications used for internal
stress testing at Sybase. Most applications should never require
more than 1M.
All Properties/com.sybase.jaguar.server.jvm.noJIT
If running the server with JDK 1.3, set this property to true to disable the Just-in-Time compiler (JIT) for the JVM. According to the IBM JDK readme, enabling JIT can cause crashes under stress conditions.
For more information on these properties, see the EAServer System Administration Guide.