Sun ONE Portal Server 6.2 安裝手冊 |
第 4 章
調校 Sun ONE Portal Server本章描述讓 Sun ONE Portal Server 的效能與容量最佳化的配置參數。與 Sun ONE Portal Server 組合的 perftune 程序檔 (在 portal-server-install-root/SUNWps/bin 目錄中) 能將本章所討論的大部分調校程序自動化。
簡介perftune 程序檔:
- 調校 Solaris 作業系統核心與 TCP 設定 (請參閱 Solaris 調校)
- 作為下面調校的一部分,修改下列配置檔案:
- 修改 Sun ONE Portal Server 桌面服務與 Sun ONE Identity Server 認證服務的屬性。
調校策略當您執行 perftune 程序檔時,會提供兩種典型使用分析藍本的效能調校選項,兩種分析藍本稱為最佳生產效能與大量生產效能。這些分析藍本定義用於處理大部分 Sun ONE Portal Server 的使用模式。這些部署分析藍本依下列特性分類:
例如,在商務對企業入口網站的尖峰時間,公司為數眾多的員工會在大量生產效能的環境中同時連線至入口網站。
記憶體配置配置每個 JVM 的大量記憶體是由兩項參數決定:
有關 JVM 效能矩陣的調校結果需查看以下定義的總處理能力、足跡與敏捷度。第二、第三與第四欄分別顯示最佳生產效能與大量生產效能環境的總處理能力、足跡與敏捷度方面的效能層級。
在此:
調校指示當您在執行 perftune 程序檔時,可以指定是否要執行下列調校建議。請仔細檢閱建議並使用 perftune 程序檔執行這些建議的修改。
若要執行 perftune 程序檔:
在調校程序期間,perftune 程序檔會執行伺服器的啟動與停止作業。它會以 filename-orig-date-pid 格式建立修改檔案的備份副本。在執行程序檔之後,重新啟動系統讓調校變更生效。
Solaris 調校
核心調校
對於 /etc/system 檔案,程序檔附加下列設定項目:
TCP 參數調校
在 /dev/tcp 中 TCP 參數 (顯示於圓括號內) 的變更包括:
- TCP 時間等待間隔 (tcp_time_wait_interval) - TCP 介面程式維持 TIME_WAIT 狀態 (在關閉連線後) 的總時間設定為 60000
- TCP Fin 等待 2 間隔 (tcp_fin_wait_2_flush_interval) - TCP 介面程式維持 FIN_WAIT_2 狀態的總時間 (在關閉連線後) 設定為 60000
- 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 ONE Identity Server 調校
目錄伺服器連線區
portal-server-install-root/SUNWam/config/ums/serverconfig.xml 檔案的變更如下:
LDAP 認證服務
LDAP 認證
Sun ONE Identity Server 服務配置參數
portal-server-install-root/SUNWam/lib/AMConfig.properties 檔案的變更如下:
/opt/SUNWam/lib/AMConfig.properties 檔案中下列的執行緒容器屬性會顯示於 Sun ONE Portal Server 6.2:
Sun ONE Directory Server 調校
如果 Sun ONE Directory Server 由其他應用程式共用,您必須檢驗那些參數不會與其他應用程式的參數調校衝突。
必須為 /tmp/slapd-DSinstance1 準備足夠的虛擬記憶體空間,使用的總記憶體包括為資料庫快取配置的記憶體,不應超過實體記憶體的大小以避免記憶體分頁。在任何事件中,slapd 程序本身使用的 nsslapd-dbcachesize + nsslapd-cachememsize + fixed memory 累計值不能超過 4 GB 處理序位址空間。Nslapd 是 32 位元的應用程式。
關於資源儲存的大小 (連線與執行緒),Sun ONE Directory Server 為搜尋類型作業提供具有約 15 並行性層級的最佳效能。
perftune 程序檔調校 ns-slapd 執行緒,db cache 與對映於 /var/opt/mps/serverroot/slapd-hostname/config/dse.ldif 檔案的資料庫檔案系統如下:
Sun ONE Web Server 6.0 調校
以下說明 perftune 程序檔提供的 JVM 調校,用於協助調校 Sun ONE Portal Server 的 Sun ONE Web Server 在最佳生產與大量生產環境中的效能。
最佳生產效能
堆疊大小
堆疊大小是最需要注意選項。如需這些參數的詳細說明,請查閱 Sun ONE Web Server 調校手冊。perftune 程序檔:
- 在位於 web-server-install-root/SUNWwbsvr/https-hostname/config 的 magnus.conf 中指定下列項目
- 在位於 web-server-install-root//https-/hostname//config 的 web-apps.xml 檔案中指定下列項目 (修改以粗體顯示)。那就是:
- 在 web-app 標籤上定義下列階段作業管理員:
<session-manager class="com.iplanet.server.http.session.IWSSessionManager>
<init-param>
<param-name>maxSessions</param-name>
<param-value>50000</param-value>
</init-param>
<init-param>
<param-name>timeOut</param-name>
<param-value>360</param-value>
</init-param>
<init-param>
<param-name>reapInterval</param-name>
<param-value>180</param-value>
</init-param>
</session-manager>
- 增加 maxSession (預設 50000) 如果並行運作階段作業的預期數目超過此值
- 將類別重新載入間隔定義為 5 分鐘 (預設為 30 秒)
<class-loader classpath="[...]" delegate="false" reload-interval="300"/>
- 為 JVM 調校,在位於 web-server-install-root//https-/hostname//config 的 server.xml 檔案中指定下列項目
- 為替代 T2 libthread 在 start-jvm 檔案中指定下列項目
NSES_JRE_RUNTIME_LIBPATH=/usr/lib/lwp:${NSES_JRE}/lib/sparc/server:${NSES_ JRE}/lib/sparc:${NSES_JRE}/lib/sparc/classic:${NSES_JRE}/lib/sparc/native_ threads;export NSES_JRE_RUNTIME_LIBPATH
大量生產效能
- 在位於 web-server-install-root/SUNWwbsvr/https-hostname/config 的 magnus.conf 中指定下列項目
- 在位於 web-server-install-root//https-/hostname//config 的 web-apps.xml 檔案中指定下列項目。
- 在 web-app 標籤上將階段作業管理員定義如下:
<session-manager class="com.iplanet.server.http.session.IWSSessionManager>
<init-param>
<param-name>maxSessions</param-name>
<param-value>50000</param-value>
</init-param>
<init-param>
<param-name>timeOut</param-name>
<param-value>360</param-value>
</init-param>
<init-param>
<param-name>reapInterval</param-name>
<param-value>180</param-value>
</init-param>
</session-manager>
- 增加 maxSession (預設 50000) 如果並行運作階段作業的預期數目超過此值
- 為 JVM 調校,在位於 web-server-install-root//https-/hostname//config 的 server.xml 檔案中指定下列項目
jvm.minHeapSize=1073741824
jvm.maxHeapSize=2147483648
jvm.option=-Xrs
jvm.option=-server
jvm.option=-XincGC
jvm.option=-XX:+UseLWPSynchronization
jvm.option=-XX:MaxPermSize=128M
jvm.option=-XX:PermSize=128M
jvm.option=-XX:+OverrideDefaultLibthread
jvm.option=-XX:MaxNewSize=256M
jvm.option=-XX:NewSize=256M
- 為替代 T2 libthread 在 start-jvm 檔案中指定下列項目
NSES_JRE_RUNTIME_LIBPATH=/usr/lib/lwp:${NSES_JRE}/lib/sparc/server:${NSES_ JRE}/lib/sparc:${NSES_JRE}/lib/sparc/classic:${NSES_JRE}/lib/sparc/native_ threads;export NSES_JRE_RUNTIME_LIBPATH
備註
如果您在應用程式伺服器網路容器上已部署 Sun ONE Portal Server,設定程序檔會為安裝 Sun ONE Portal Server 的應用程式伺服器實例將 JVM 最大與最小的堆疊大小變更為 128 MB。若要使用不同的最小與最大 JVM 堆疊大小,請至 Application Server 的管理主控台將最小與最大 JVM 堆疊大小設定為您選擇的值
Sun ONE Application Server 7.0 調校
在 Sun ONE Application Server 部署 Sun ONE Portal Server 時,會設定應用程式伺服器實例的最小與最大堆疊大小。
對於 J2SDK 1.4.1_01 與 1.4.2 兩者,Sun ONE Application Server 7.0 的建議 JVM 選項如下。
如果伺服器的機器只能容納 4 GB 實體記憶體,則可以使用值 -Xms2048M 取代 -Xms3072M;只有 4 GB 實體記憶體若設定 -Xms3072M,JVM 將無法啟動。這些 JVM 選項應該凌駕於 perftune 程序檔設定的 JVM 選項之上。
整組 JVM 參數包括:
設定閘道可靠性的其他 Sun ONE Application Server 參數
若要使用 Secure Remote Access 達到最佳化效能,請配置實作如下:
- 修改 identity-server-install-root/SUNWam/lib/configAmConfig.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 並按一下「儲存」。
- 以管理員身份登入 Sun ONE Application Server 管理主控台,方法是在瀏覽器網路位址欄位輸入 http://fullservername:port。預設連接埠是 4848。使用在安裝時輸入的密碼。
- 在安裝 Identity Server 的地方選取應用程式伺服器實例。
- 按一下「JVM 設定」然後再按一下「JVM 選項」。
- 在「JVM 選項」欄位中,輸入下列字串:
-Dhttp.keepAlive=false
- 按一下「新增」,然後按一下「儲存」。
- 在您將要安裝 Portal Server 的地方選取應用程式伺服器實例。
右窗格會顯示配置已經變更。
- 按一下「套用變更」。
- 按一下「重新啟動」。
- 應用程式伺服器應該會自動重新啟動。
- 在安裝閘道的伺服器上,請至 /opt/SUNWps/bin/perf 目錄,並輸入下列字串以執行將會設定 Secure Remote Access 調校參數的程序檔:
./srapperftune
- 修改 identity-server-install-root/SUNWam/lib/configAmConfig.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 堆疊大小選項設定。
依預設,srapperftune 程序檔會設定 -Xms 與 -Xmx 堆疊大小選項為 1024。在定義 CMD 設定選項的行中,將為 -Xms 與 -Xmx 定義的預設值增加為 2048 並新增字串 -Dhttp.keepAlive=false。例如,正確的行應為:
CMD="$JAVA_HOME/bin/java -server -Xms2048M -Xmx2048M -XX:+OverrideDefaultLibthread -XX:ThreadStackSize=128 -XX:MaxPermSize=128M -XX:PermSize=128M -XX:MaxNewSize=256M -XX:NewSize=256M -Dhttp.keepAlive=false -classpath ${CLASSPATH} $DEFINES $PROXY_DEFINES $INSTANCE_DEFINES 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 是在安裝時建立的預設閘道設定檔。
Sun ONE Portal Server 桌面調校
最佳生產效能
大量生產效能
caller 參數是用於調整執行緒容器的大小,以透過提供者描繪內容。呼叫者容器初始大小為 0。項目在使用與傳回時會新增至容器。呼叫者容器可以擴展至非常大的大小,然而在一般情形中只會與使用者入口網站桌面的通道數一樣大。有多重並行運作的執行緒具有相同 sid 情形時,容器可以擴展為 n * m 的大小,其中 n = 並行運作相同 sid 執行緒的數目,而 m = 給定的 sid 入口網站桌面上的通道數目。
為了讓「提供者呼叫者資源容器」最佳化,perftune 程序檔會在 /etc/opt/SUNWps/desktop/desktopconfig.properties 檔案中變更下列參數:
當執行長程測試時,為了讓入口網站桌面呼叫者執行緒的產生所造成的不必要記憶體增長最小化,這些屬性 (除了 templateScanInterval) 應該變更回原來的預設值。
請對這些屬性進行下列變更: