应用程序
|
确定要部署的应用程序的以下要求:
|
硬件
|
|
操作系统
|
|
网络基础设施
|
|
后端和其他外部数据源
|
与相关领域专家或供应商进行核实,以确保这些数据源配置正确。
|
系统更改/配置
|
|
Application Server 和 HADB 安装
|
|
HADB 配置
|
|
Application Server 配置
|
|
负载平衡器配置
|
|
Java 虚拟机配置
|
|
在负载平衡器中配置超时
|
-
Response-time-out-in-seconds - 负载平衡器在声明 Application Server 实例运行不正常之前等待的时间。根据应用程序的响应时间设置该值。如果设置的值太大,Web Server 和负载平衡器插件将等待很长的时间,才会将 Application Server 实例标记为运行不正常。如果设置的值太小,并且 Application Server 的响应时间超过该阈值,则会将该实例错误地标记为运行不正常。
-
Interval-in-seconds - 检查运行不正常的实例是否恢复为正常状态之前等待的时间(以秒为单位)。如果该值太小,则会产生从负载平衡器插件到 Application Server 实例的额外通信;如果该值太大,则会延迟向已恢复正常状态的实例路由请求。
-
Timeout-in-seconds - 为运行状况检查请求获取响应的持续时间。请根据群集中的各个系统的通信情况调整该值,以确保运行状况检查成功完成。
有关更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 5 章 “配置 HTTP 负载平衡”。
|
在 HADB 中配置超时
|
-
sql_client_timeout - SQLSUB 等待空闲客户机的时间。例如,已登录、发送了一些请求后等待用户输入的客户机。假定空闲时间超过 30 分钟的客户机已停用并终止会话。如果设置的值太小,则可能会提前终止 SQL 会话。如果设置的值太大,则可能会导致未处于空闲状态但已退出的 SQL 会话占用资源。而这又会阻止其他 SQL 客户机进行登录。在调整此变量时,还要考虑 nsessions 设置。如果 HADB JDBC 连接池的 steady-pool-size 大于 max-pool-size,则可以将 idle-timeout-in-seconds 设置为小于 sql_client_timeout,以便 Application Server 在 HADB 关闭连接之前自行将其关闭。默认值为 1800 秒。
-
lock_timeout - 事务等待访问数据的最长时间(以毫秒为单位)。如果超过该时间,事务将生成以下错误消息:“事务超时”。此类超时是由于事务等待其他事务所保留的锁定(死锁)引起的,这会产生很高的服务器负载。不要将该值设置为低于 500 毫秒。如果在服务器日志中看到“事务超时”消息,请增大该值。可通过在 HADB 的 JDBC 连接池中添加属性来设置锁定超时值,如下所示:<property name=lockTimeout value="x"\>。默认值为 5000 毫秒。
-
Querytimeout - HADB 等待执行查询的最长时间(以毫秒为单位)。如果服务器日志中不断出现指明查询超时的异常,请考虑增大该值。可通过在 HADB 的 JDBC 连接池中添加以下属性来设置该值:<property name=QueryTimeout value="x"\>。默认值为 30 秒。
-
loginTimeout - 客户机等待登录到 HADB 的最长时间(以秒为单位)。可通过在 HADB 的 JDBC 连接池中添加以下属性来设置该值:<property name=loginTimeout value="x"\>。默认值为 10 秒。
-
MaxTransIdle - 在向客户机发送回复和接收下一个请求之间,事务可以处于空闲状态的最长时间(以毫秒为单位)。可通过在 HADB 的 JDBC 连接池中添加属性来更改该值,如下所示: <property name=maxtransIdle value="x"\>。默认值为 40 秒。
有关更多信息,请参见:《Sun Java System Application Server Performance Tuning Guide》。
|
在 Application Server 中配置超时
|
-
Max-wait-time-millis - 在抛出异常之前等待从池中获取连接的时间。默认值为 6 秒。对于要保留的数据大小超过 50 KB 的高负载系统,请考虑更改该值。
-
Cache-idle-timeout-in-seconds - 在 EJB 钝化之前允许其在高速缓存中处于空闲状态的时间。仅适用于实体 Bean 和有状态会话 Bean。
-
Removal-timeout-in-seconds - EJB 保持钝化状态的时间(在备份存储中处于空闲状态)。默认值为 60 分钟。请根据 SFSB 故障转移需求调整该值。
在调整所有这些值时,应考虑到 HADB 的 JDBC 连接池设置 max-wait-time-in-millis。有关更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的“配置 JDBC 连接池”。
|
调整 VM 垃圾收集 (Garbage Collection, GC)
|
如果垃圾收集暂停 4 秒或更长时间,则可能会导致在 HADB 中保留会话状态的过程中出现时断时续的问题。为避免出现此问题,请调整 VM 堆。如果在保留数据时不容许出现丝毫故障,或者系统并未满负荷运行,请使用 CMS 收集器或吞吐量收集器。
可通过添加以下内容来启用这些收集器:
<jvm-options>-XX:+UseConcMarkSweepGC</jvm-options>
此选项可能会降低吞吐量。
|