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 作業系統核心與 TCP 設定 (請參閱 Solaris 調校)
- 作為下面調校的一部分,修改下列配置檔案:
- 修改 Portal Server 桌面服務與 Sun Java System Identity Server 認證服務的特性。
調校指示若要執行 perftune 程序檔:
在調校程序期間,perftune 程序檔會執行伺服器的啟動與停止作業。它會以 filename-orig-date-pid 格式建立修改檔案的備份副本。在執行程序檔之後,重新啟動系統讓調校變更生效。
Solaris 調校
核心調校
對於 /etc/system 檔案,程序檔附加下列設定項目:
原始檔案 (/etc/system) 將會以下列格式複製到檔案:
/etc/system-orig-’$DATE+%y%m%d’-$$
TCP 參數調校
在 /dev/tcp 中 TCP 參數 (顯示於圓括號內) 的變更包括:
- TCP 時間等待間隔 (tcp_time_wait_interval) - TCP socket 維持 TIME_WAIT 狀態的總時間 (在關閉連線後) 設定為 60000
- TCP Fin 等待 2 間隔 (tcp_fin_wait_2_flush_interval) - TCP socket 維持 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
目錄伺服器連線區
/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 + 註冊的服務) 其中 MAX_CONCURRENT_SESSIONS=7000,且註冊的服務=3 (方塊預設之外)。- 將 com.iplanet.am.stats.interval 的值指定為 60。
- 將 com.iplanet.am.session.purgedelay 的值指定為 5。
- 將 com.iplanet.services.stats.state 指定為 file。
- 將 com.iplanet.services.states.directory 指定為 /var/opt/SUNWam/debug。
若 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 程序檔調校 ns-slapd 執行緒,db cache 與對映於 /var/opt/mps/serverroot/slapd-hostname/config/dse.ldif 檔案的資料庫檔案系統如下:
Sun Java System Web Server 6.1 調校
以下將說明由 perftune 程序檔提供的 JVM 調校,其目的是協助調校 Portal Server 的 Sun Java System Web 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 調校,其目的是協助調校 Portal Server 的 Sun Java System Application 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:
/*Notification Thread Pool Size*/ com.iplanet.am.notification.threadpool.size=200
- 使用使用者名稱 amadmin 與在安裝時輸入的 passphrase 登入 Portal Server 管理主控台。
- 在 [檢視] 功能表中選取「服務管理」。
- 選取「SRAP 配置」,然後選取「閘道」。
- 選取預設伺服器並按一下 [編輯]。
- 核取 [啟用 HTTP 連線] 核取方塊。
- 在「HTTP 連接埠」欄位中,輸入 80 並按一下 [儲存]。
- 在您的瀏覽器 web 位址欄位輸入 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:
/*Notification Thread Pool Size*/ 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。項目在使用與傳回時會新增至容器。呼叫者容器可以擴展至非常大的大小,然而在一般情形中只會與使用者Portal Desktop的通道數一樣大。有多重並行運作的執行緒具有相同 sid 情形時,容器可以擴展為 n * m 的大小,其中 n = 並行運作相同 sid 執行緒的數目,而 m = 給定的 sid Portal Desktop上的通道數目。
為了讓「提供者呼叫者資源容器」最佳化,perftune 程序檔會在
/etc/opt/SUNWps/desktop/desktopconfig.properties 檔案中變更下列參數:當執行長程測試時,為了讓Portal Desktop呼叫者執行緒的產生所造成的不必要記憶體增長最小化,這些屬性 (除了 templateScanInterval) 應該變更回原來的預設值。
請對這些屬性進行下列變更: