Application |
Determine the following requirements for the application to be deployed.
-
Required/acceptable response time.
-
Peak load characteristics.
-
Necessary persistence scope and frequency.
-
Session timeout in web.xml.
-
Failover and availability requirements.
|
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.
|
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.
|
Installation |
|
Eclipse GlassFish Configuration |
-
Enable access log rotation.
-
Choose the right logging level. WARNING is usually appropriate.
-
Configure Jakarta EE containers using the Administration Console.
-
Configure HTTP listeners using the Administration Console.
-
Configure ORB threadpool using the Administration Console.
-
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.
|
Load balancer Configuration |
|
Configuring usual attributes of load balancing algorithm |
-
Endpoint - Address or host and port used for checks generating minimal
possible load.
-
Response-time-out-in-seconds - How long the load balancer waits before
declaring a Eclipse GlassFish 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 Eclipse GlassFish
instance as unhealthy. If set too low and Eclipse GlassFish’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
Eclipse GlassFish 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 Eclipse GlassFish |
-
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.
|
Java Virtual Machine Configuration |
-
Initially set the minimum and maximum heap sizes to be the same, and
at least one GB for each instance.
-
When running multiple instances of Eclipse GlassFish, consider creating
a processor set and bind Eclipse GlassFish to it. This helps in cases
where the CMS collector is used to sweep the old generation.
|