本節在下列小節中說明在伺服器池配置中部署 Instant Messaging 時有用的微調和效能資訊,以及最佳化資源回收的資訊:
此資訊應與「Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide」一起使用。
在伺服器池部署中,您需要對伺服器池內每個 Instant Messaging 伺服器做相同的設定。
請使用 J2SE 版本 5 執行 Instant Messaging 伺服器,因為它的執行效能較佳且支援人體工學功能,故不需要指令行微調。可在下列文件中找到使用此版本 Java 的詳細資訊:
Instant Messaging 伺服器使用 iim.conf 檔案中的 iim.jvm.maxmemorysize 參數設定要配置的 JVM 堆疊儲存區最大值。此參數的預設值為 256 MB,但大型的使用中 Instant Messaging 部署則需要更多的記憶體。要為伺服器池中的 Instant Messaging 伺服器配置多少記憶體視需要支援多少同步運作的作用中使用者而定。伺服器池中的每部 Instant Messaging 伺服器需要 256 MB,還有每個連線的/作用中的使用者在進行如下日常使用時需要 65 KB:
兩次線上狀態更新
五次為期 10 分鐘的聊天
一次為期 15 分鐘的多使用者會議
一次登出和登入
每個使用者的額外負載,使用像新聞或檔案傳輸等其他的 Instant Messaging 服務,以及使用如訊息篩選、歸檔或 SSL 等功能都會消耗更多記憶體。將 Instant Messaging 部署到生產環境中之前,您應先執行典型使用者活動的負載設定檔。連絡 Sun 支援服務以取得有關 Instant Messaging 部署之負載設定檔的更多資訊。
Instant Messaging 提供一組配置選項,以使執行緒池的大小和運作方式可適用於用戶端對伺服器與伺服器對伺服器之不同請求。這些合併了相關服務連接埠的執行緒池可以提昇 Instant Messaging 伺服器的流量。
選項名稱 |
說明 |
預設值 |
---|---|---|
iim_server.maxthreads |
預設執行緒池的最大執行緒數目。 |
20 |
iim_server.threadpool |
獨立執行緒池的清單。 |
(全部使用預設執行緒池。) |
iim_server.threadpool.capacity |
預設執行緒池的容量 (*)。 |
10 * maxthreads |
iim_server.threadpool.aaa.maxthreads |
名稱為 aaa 之執行緒池的最大執行緒數: maxthreads(aaa) |
4 |
iim_server.threadpool.aaa.capacity |
名稱為 aaa 之執行緒池的容量。 |
10 * maxthreads(aaa) |
表 3 Instant Messaging 已定義的執行緒池
名稱 |
使用 |
---|---|
s2s-in |
所有伺服器對伺服器的傳入通訊。如果連接埠允許伺服器對伺服器,則會使用此執行緒池。 |
s2s-out |
所有伺服器對伺服器的輸出通訊。如果連接埠允許伺服器對伺服器,則會使用此執行緒池。 |
s2s |
所有伺服器對伺服器的通訊,s2s-in 和 s2s-out 的聯合。 |
可以指定已定義的執行緒池並將其與僅限相關伺服器之服務連接埠一同使用,如服務連接埠配置中所述。
當執行緒池的容量超過時,會輸出訊息到標準錯誤。Instant Messaging 伺服器不會為執行緒池接受任何其他的請求,直到請求的數目低於執行緒池的容量值為止。如果是在伺服器池環境中發生這種情況,您可能需要:
增加執行緒池的容量
指定已定義的執行緒池
調整執行緒池的 maxthreads 數目
使用僅限伺服器的服務連接埠
可能需要增加記憶體
在伺服器池中更有效率地分布使用者
!s2s thread pool iim_server.threadpool=s2s-in iim_server.threadpool.s2s-in.maxthreads=5 |
下列是數個服務連接埠配置選項,如本節所述。
選項 |
定義 |
預設值 |
---|---|---|
iim_server.useport |
開啟一般連接埠 (允許 StartTLS)。 |
true |
iim_server.usesslport |
開啟 SSL 連接埠 (非可協商的 TLS) |
false |
iim_server.usemuxport |
開啟多重訊號組合器連接埠 |
true |
iim_server.port |
一般連接埠的清單 |
5269 |
iim_server.sslport |
SSL 連接埠的清單 |
5270 |
iim_mux.serverport |
多重訊號組合器連接埠的清單 |
45222 |
iim_server.port.port .sndbuf |
通訊端 send 緩衝區大小 |
無 |
iim_server.port.port .rcvbuf |
通訊端 recv 緩衝區大小 |
無 |
iim_server.port.port .interface |
要連結之特定網路介面的清單 |
無 (表示任何皆可) |
iim_server.port.port .protocol |
此連接埠 (用戶端、伺服器、元件、對等端) 上允許的通訊協定清單 |
所有/任意 |
iim_server.port.port .nodelay |
啟用 Nagles 演算法 |
false |
透過調整連接埠的傳送和接收緩衝區大小,可提昇服務連接埠的流量。
iim_server.port = 5269, 45269, 15222 iim_server.port.5269.protocol = server iim_server.port.45269.protocol = peer, component iim_server.port.45269.sndbuf= 512000 iim_server.port.45269.recvbuf= 512000 iim_server.port.15222.protocol = client |
(問題編號:6279277) 由於 JRE 1.4.2 和 1.5 版本處理資源回收的方法不同,在伺服器主機上使用 1.4.2 版本預設的資源回收程式效能較不理想。若要修復此問題,您可升級到 JRE 的 1.5 版本,或當您呼叫伺服器時包含下列指令行選項:
-XX:+UseParallelGC |
如需關於 JRE 資源回收的詳細資訊,請參閱下列文件: