![]() | |
Sun Java System Portal Server 6 2004Q2 管理员指南 |
第 16 章
微调 Portal Server本章介绍优化 Sun Java System Portal Server 的性能和容量的配置参数。与 Portal Server 捆绑在一起的 perftune 脚本(位于 portal-server-install-root/SUNWps/bin 目录下)将自动完成本章所述的微调进程的大部分操作。
对此版本中 perftune 脚本的更新包括:
简介perftune 脚本:
- 微调 Solaris 操作系统 Kernel 和 TCP 设置(参见 Solaris 微调)
- 作为下列微调进程的一部分,修改以下配置文件:
- 修改 Portal Server 桌面服务和 Sun Java System Identity Server 验证服务的属性。
微调指导要运行 perftune 脚本:
在微调进程期间,perftune 脚本执行服务器的启动和停止操作。此脚本将以 filename-orig-date-pid 格式来创建已修改文件的副本。在运行脚本使微调后重新启动系统以使更改生效。
Solaris 微调
Kernel 微调
脚本向 /etc/system 文件追加以下设置:
原文件 (/etc/system) 将被复制到如下格式的文件中:
/etc/system-orig-’$DATE+%y%m%d’-$$
TCP 参数微调
在 /dev/tcp 中对 TCP 参数(在圆括号中显示)的更改包括:
- TCP 时间等待间隔 (tcp_time_wait_interval) - 关闭连接后,TCP 套接字保持 TIME_WAIT 状态的时间长短设置为 60000
- TCP 完成等待 2 间隔 (tcp_fin_wait_2_flush_interval) - 关闭连接后,TCP 套接字保持 FIN_WAIT_2 状态的时间长短设置为 67500
- TCP 最大连接大小 (tcp_conn_req_max_q) - 完全建立的连接的最大数目设置为 8192
- TCP 列表队列 (tcp_conn_req_max_q0) - 包含未建立的连接的队列的大小设置为 8192
- TCP 信息包丢弃时间 (tcp_ip_abort_interval) - 在丢弃信息包之前的时间长短设置为 60000
- TCP 保活间隔 (tcp_keepalive_interval) - 此参数设置为 90000
- TCP 转发最大间隔 (tcp_rexmit_interval_max) - 此参数设置为 6000
- TCP 转发最小间隔 (tcp_rexmit_interval_min) - 此参数设置为 3000
- TCP 转发初始间隔 (tcp_rexmit_interval_initial) - 此参数设置为 500
- TCP 最小匿名端口 (tcp_smallest_anon_port) - 此参数设置为 1024
- TCP 慢启动算法的初始信息包 (tcp_slow_start_initial) - 此参数设置为 2
- TCP 传输/接收缓冲器大小限量(tcp_xmit_hiwat 和 tcp_recv_hiwat)- 每个参数均设置为 32768
为了在重新启动系统时自动执行 ndd 命令,perftune 脚本将 S99ndds_tcp 文件复制到 /etc/rc2.d/ 目录中。
Sun Java System Identity Server 微调
Directory Server 连接池
以下是对 /etc/opt/SUNWam/config/serverconfig.xml 文件所做的更改:
LDAP 验证服务
Sun Java System Identity Server 服务配置参数
以下是对 /etc/opt/SUNWam/config/AMConfig.properties 文件所做的更改:
- 指定 com.iplanet.am.logstatus 为 INACTIVE
- 如果预期的并发会话数目超过此参数值,则增加 com.iplanet.am.session.maxSession(默认值是 50000)
- 禁用 com.iplanet.am.session.httpSession.enabled
- 指定 com.iplanet.am.sdk.cache.maxSize=DSAME_MAX_CACHE_SIZE,其中 DSAME_MAX_CACHE_SIZE 基于 Identity Server 和 Portal Server 微调指导建议。
DSAME_MAX_CACHE_SIZE=(MAX_CONCURRENT_SESSIONS) * (2 + services registered),其中 MAX_CONCURRENT_SESSIONS=7000,services registered=3(超出框默认值)。- 以值 60 指定 com.iplanet.am.stats.interval。
- 以值 5 指定 com.iplanet.am.session.purgedelay。
- 以值 file 指定 com.iplanet.services.stats.state。
- 以值 /var/opt/SUNWam/debug 指定 com.iplanet.services.states.directory。
如果 Identity Server 和 Portal Server 安装在单独的机器上,则启用轮询模式。轮询模式提供以下选项:
/opt/SUNWam/lib/AMConfig.properties 文件中的以下线程池特性将在 Portal Server 6 中介绍:
Sun Java System Directory Server 微调
如果 Sun Java System Directory Server 由其他应用程序共享,则可能需要检查这些参数与其他应用程序的参数微调不发生冲突。
必须为 /tmp/slapd-DSinstance1 提供足够的虚拟内存空间,并且为避免内存分页,所用内存的总空间大小(包括为数据库高速缓存分配的内存空间)必须不超过物理内存的容量。在任何情况下,slapd 进程本身占用的 nsslapd-dbcachesize + nsslapd-cachememsize + fixed memory 的累计值不能超过 4 GB 的处理地址空间。Nsslapd 是 32 位应用程序。
关于资源池(连接和线程)的大小,Sun Java System Directory Server 搜索类型的操作提供并发级别为 15 左右的最优性能。
perftune 脚本将按如下方式微调映射在 /var/opt/mps/serverroot/slapd-hostname/config/dse.ldif 文件中的 ns-slapd 线程、db cache 和数据库文件系统:
Sun Java System Web Server 6.1 微调
下面介绍 perftune 脚本提供的 JVM 微调,用于帮助微调 Sun Java System Web Server 来实现 Portal Server 性能。
- 在位于 web-server-install-root/SUNWwbsvr/https-hostname/config 的 magnus.conf 中指定下列各项
- 在位于 web-server-install-root//https-hostname//config 的 server.xml 文件中为“JVM 微调”指定下列各项:
- -Xms3G (如果有可用内存,则将此值设置为 3G,否则,在默认情况下将 Xms 值设置为 128)
- -Xmx3G (如果有可用内存,则将此值设置为 3G,否则,在默认情况下将 Xmx 值设置为 128)
- -Xss128K
- -Xloggc:/var/opt/SUNWappserver7/domains/domain1/
server1/logs/gclog- -XX:NewSize=384M
- -XX:MaxNewSize=384M
- -XX:MaxPermSize=64M
- -XX:PermSize=64M
- -XX:+UseParNewGC
- -XX:+UseConcMarkSweepGC
- -XX:MaxTenuringThreshold=1
- -XX:SoftRefLRUPolicyMSPerMB=1
- -XX:+CMSClassUnloadingEnabled
- -XX:+CMSPermGenSweepingEnabled
- -XX:+PrintGCTimeStamps
- -XX:+ShowMessageBoxOnError
- -XX:+OverrideDefaultLibthread
- -XX:+DisableExplicitGC
- -XX:+PrintGCDetails
- -XX:+PrintClassHistogram
Sun Java System Application Server 7.0 微调
当在 Sun Java System Application Server 上部署 Portal Server 时,应用程序服务器实例的最小和最大堆栈容量将被设置为 3 GB。
perftune 脚本现在包括一项保护措施,可以防止 perftune 脚本微调不允许为 JVM 提供 3 GB 堆栈的系统。
下面介绍 perftune 脚本提供的 JVM 微调,以帮助微调 Sun Java System Application Server 来实现 Portal Server 性能。
- 在位于 Deplaoy_Domain/Deploy_Instance/config 的 init.conf 文件中指定以下值
- 在 Deplaoy_Domain/Deploy_Instance/config/sever.xml 文件中指定以下 JVM 参数:
- -Xms3G (如果有可用内存,则将此值设置为 3G,否则,在默认情况下将 Xms 值设置为 128)
- -Xmx3G (如果有可用内存,则将此值设置为 3G,否则,在默认情况下将 Xmx 值设置为 128)
- -Xss128K
- -Xloggc:/var/opt/SUNWappserver7/domains/domain1/server1/logs/gclog
- -XX:NewSize=384M
- -XX:MaxNewSize=384M
- -XX:MaxPermSize=64M
- -XX:PermSize=64M
- -XX:+UseParNewGC
- -XX:+UseConcMarkSweepGC
- -XX:MaxTenuringThreshold=1
- -XX:SoftRefLRUPolicyMSPerMB=1
- -XX:+CMSClassUnloadingEnabled
- -XX:+CMSPermGenSweepingEnabled
- -XX:+PrintGCTimeStamps
- -XX:+ShowMessageBoxOnError
- -XX:+OverrideDefaultLibthread
- -XX:+DisableExplicitGC
- -XX:+PrintGCDetails
- -XX:+PrintClassHistogram
设置附加 Sun Java System Application Server 参数保证网关可靠性
欲利用 Secure Remote Access 使网关达到最佳性能,请按如下方式配置实现:
- 修改 identity-server-install-root/SUNWam/lib/AmConfig.properties 文件来设置应用程序服务器的通知线程池容量大小。在文件顶部的如下几行下面:
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* Inc. in the United States and other countries.
添加以下几行,将线程池的容量设置为 200:
/*通知线程池容量*/ com.iplanet.am.notification.threadpool.size=200
- 使用用户名 amadmin 和安装期间输入的长口令登录到 Portal Server 管理控制台。
- 在“视图”菜单中选择“服务管理”。
- 选择“SRA 配置”,然后选择“网关”。
- 选择默认的服务器,然后单击“编辑”。
- 选中“启用 HTTP 连接”复选框。
- 在“HTTP 端口”字段中,键入 80,然后单击“保存”。
- 在浏览器的网络地址字段中输入 http://fullservername:port,以管理员 (admin) 身份登录到 Sun Java System Application Server 管理控制台。默认端口为 4848。使用安装时输入的口令。
- 选择安装 Identity Server 的应用程序服务器实例。
- 单击“JVM 设置”,然后单击“JVM 选项”。
- 在“JVM 选项”字段中,输入以下字符串:
-Dhttp.keepAlive=false
- 单击“添加”,然后单击“保存”。
- 选择将要安装 Portal Server 的应用程序服务器实例。
右侧窗格显示配置已发生更改。
- 单击“应用更改”。
- 单击“重新启动”。
- 应用程序服务器会自动重新启动。
- 在安装网关的服务器上,转至 /opt/SUNWps/bin/perf 目录,然后输入以下内容来运行用以为 Secure Remote Access 设置微调参数的脚本:
./perftune
- 修改 identity-server-install-root/SUNWam/lib/AmConfig.properties 文件来设置网关的通知线程池容量大小。在文件顶部的如下几行下面:
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* Inc. in the United States and other countries.
添加以下几行,将线程池的容量设置为 200:
/*通知线程池容量*/ com.iplanet.am.notification.threadpool.size=200
- 转至 /opt/SUNWps/bin 目录,然后修改网关文件,设置 -Dhttp.keepAlive 选项为 false,并增加 -Xms 和 -Xmx 的堆栈容量选项设置。
- 定义 CMD 设置选项,如下所示:
CMD="$JAVA_HOME/bin/java -server -Xms3G -Xmx3G -XX:+OverrideDefaultLibthread -Xss128K
-XX:MaxPermSize=64M -XX:PermSize=64M -XX:MaxNewSize=512M
-XX:NewSize=512M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:MaxTenuringThreshold=1
-XX:SoftRefLRUPolicyMSPerMB=1
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+PrintClassHistogram
-XX:+ShowMessageBoxOnError -XX:+DisableExplicitGC
-Xloggc:/var/opt/SUNWps/debug/gclog.$GW_INSTANCE -classpath $CLASSPATH $DEFINES1 $DEFINES2 $DEFINES3 $DEFINES4 $DEFINES5
$PROXY_DEFINES $BOOT_CLASSPATH com.sun.portal.netlet.eproxy.EProxy"- 修改 /etc/opt/SUNWps/platform.conf.default 文件,设置 gateway.protocol 参数为 http,设置 gateway.port 参数为端口 80,如下所示:
gateway.protocol=http
gateway.port=80
- 要使更改生效,需要键入以下命令来重新启动网关:
portal-server-install-root/SUNWps/bin/gateway -n default start
其中,default 是安装期间所创建的默认网关配置文件。
Portal Server 桌面微调
使用 caller 参数指定通过编写程序提供内容的线程池的大小。调用池初始化为大小 0。使用和返回项目时将项目添加到池。调用池的大小会扩展为很大。可是,在正常情况下其大小仅能扩展到与用户的“门户桌面”上的频道的数目一样大。在有多个并发线程使用相同的 sid 情况下,池可能扩展到大小 n * m,其中 n = 并发的相同 sid 线程的数目,m = 对于给定的 sid,“门户桌面”上的频道的数目。
为优化“编写程序调用资源池”,perftune 脚本在 /etc/opt/SUNWps/desktop/desktopconfig.properties 文件中更改以下参数:
当执行长运行测试时,要减少由于派生的“门户桌面”调用线程而增加的不必要的内存空间,必须将这些特性(除 templateScanInterval 以外)更改回其原始的默认值。
对这些特性进行下列更改: