Application |
Determine the following requirements for the application to be deployed.
|
Hardware |
|
Operating System |
|
Network Infrastructure |
-
Identify single points of failures and address them.
-
Make sure that the NICs and other network components are correctly
configured.
-
Run ttcp benchmark test to determine if the throughput meets the
requirements/expected result.
-
Setup ssh based your preference.
For more information see the GlassFish Server Open Source
Edition Installation Guide.
|
Back-ends and other external data sources |
Check with the domain expert
or vendor to ensure that these data sources are configured
appropriately. |
System Changes/Configuration |
-
Make sure that changes to /etc/system and its equivalent on Linux
are completed before running any performance/stress tests.
-
Make sure the changes to the TCP/IP settings are complete.
-
By default, the system comes with lots of services pre-configured. Not
all of them are required to be running. Turn off services that are not
needed to conserve system resources.
-
On Solaris, use Setoolkit to determine the behavior of the system.
Resolve any flags that show up.
For more information see the GlassFish Server Open Source
Edition Performance Tuning Guide.
|
Installation |
|
GlassFish Server Configuration |
-
Logging: Enable access log rotation.
-
Choose the right logging level. WARNING is usually appropriate.
-
Configure Java EE containers using the Administration Console.
-
Configure HTTP listeners using the Administration Console.
-
Configure ORB threadpool using the Administration Console.
-
If using Type2 drivers or calls involving native code, ensure that
mtmalloc.so is specified in the LD_LIBRARY_PATH.
-
Ensure that the appropriate persistence scope and frequency are used
and they are not overridden underneath in the individual Web/EJB
modules.
-
Ensure that only critical methods in the SFSB are checkpointed.
For more information on tuning, see the GlassFish Server
Open Source Edition Performance Tuning Guide.
For more information on configuration, see the GlassFish
Server Open Source Edition Administration Guide.
|
Load balancer Configuration |
-
Make sure the Web Server is installed.
-
Make sure the load balancer plug-in into the Web Server is installed.
-
Make sure patch checks is disabled.
-
Lower the value of the KeepAliveQuery parameter. The lower the
value, the lower the latency is on lightly loaded systems. The higher
the value, the higher the throughput is on highly loaded systems.
|
Java Virtual Machine Configuration |
|
Configuring time-outs in the load balancer |
-
Response-time-out-in-seconds - How long the load balancer waits before
declaring a GlassFish Server instance unhealthy. Set this value based on
the response time of the application. If set too high, the Web Server
and load balancer plug-in wait a long time before marking a GlassFish
Server instance as unhealthy. If set too low and GlassFish Server’s
response time crosses this threshold, the instance will be incorrectly
marked as unhealthy.
-
Interval-in-seconds - Time in seconds after which unhealthy instances
are checked to find out if they have returned to a healthy state. Too
low a value generates extra traffic from the load balancer plug-in to
GlassFish Server instances and too high a value delays the routing of
requests to the instance that has turned healthy.
-
Timeout-in-seconds - Duration for a response to be obtained for a
health check request. Adjust this value based on the traffic among the
systems in the cluster to ensure that the health check succeeds.
|
Configuring time-outs in GlassFish Server |
-
Max-wait-time-millis - Wait time to get a connection from the pool
before throwing an exception. Default is 6 s. Consider changing this
value for highly loaded systems where the size of the data being
persisted is greater than 50 KB.
-
Cache-idle-timeout-in-seconds - Time an EJB is allowed to be idle in
the cache before it gets passivated. Applies only to entity beans and
stateful session beans.
-
Removal-timeout-in-seconds - Time that an EJB remains passivated (idle
in the backup store). Default value is 60 minutes. Adjust this value
based on the need for SFSB failover.
|
Tune VM Garbage Collection (GC) |
Garbage collection pauses of four seconds or more can cause intermittent
problems in persisting session state. To avoid this problem, tune the VM
heap. In cases where even a single failure to persist data is
unacceptable or when the system is not fully loaded, use the CMS
collector or the throughput collector.
These can be enabled by adding:
<jvm-options>-XX:+UseConcMarkSweepGC</jvm-options>
This option may decrease throughput.
|