Sun Java Communications Suite 5 版本說明

Instant Messaging 的效能、延展性和大小考量

本部分在以下小節中描述有關在伺服器池配置中部署 Instant Messaging 時調校和效能,以及最佳化資源回收的實用資訊:

這些資訊必須和「Sun Java Communications Suite 5 Deployment Planning Guide」一起使用。


注意 – 注意 –

在伺服器池部署中,您必須以完全相同的方式,在伺服器池中設定每部 Instant Messaging 伺服器。


調校 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 的記憶體供每位連線/使用中的使用者日常使用,例如:

每位使用者的附加負載、使用其他 Instant Messaging 服務 (如新聞或檔案傳送),以及使用郵件篩選器、歸檔、或 SSL 等功能,將消耗更多記憶體。在將 Instant Messaging 部署至生產環境之前,您應該先執行典型使用者活動負載設定檔。有關執行 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)

iim_server.threadpool.aaa.capacity

已命名執行緒池 aaa 的容量。

10 * maxthreads(aaa) 

表 4–4 Sun Java Communications Suite 的已定義執行緒池

名稱 

使用 

s2s-in 

所有伺服器到伺服器的傳入通訊。如果連接埠允許伺服器到伺服器,則使用此執行緒池。 

s2s-out 

所有伺服器到伺服器的傳出通訊。如果連接埠允許伺服器到伺服器,則使用此執行緒池。 

s2s 

所有伺服器到伺服器的通訊;s2s-in 和 s2s-out 的聯合。 

已定義執行緒池是可以指定的,並可與相關聯的唯伺服器服務連接埠一起使用,如服務連接埠配置中所述。您可以在 iim.conf 中編輯執行緒和連接埠配置。變更執行緒和連接埠配置之後,您需要重新啟動伺服器。

超出執行緒池的容量時,系統會輸出訊息至標準錯誤。請求數低於執行緒池容量之前,Instant Messaging 伺服器都不會接受對執行緒池的其他任何請求。如果伺服器池環境發生這種狀況,您可能需要執行以下作業:


範例 4–1 使用已定義執行緒池,為 Instant Messaging 的伺服器到伺服器內傳通訊保留五個執行緒。


!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 

透過調整連接埠的傳送或接收緩衝區大小,可提昇服務連接埠的流量。


範例 4–2 Instant Messaging 服務連接埠配置


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 

調校 Instant Messaging 資源回收

(問題編號:6279277) 由於 JRE 1.4.2 和 1.5 版處理資源回收的方式不同,當您在伺服器的主機上使用 1.4.2 版的預設資源回收時,可能無法達到最佳效能。為修正這個問題,您可以升級到 JRE 1.5 版,或是在呼叫伺服器時包含以下指令行選項:


-XX:+UseParallelGC

如需有關 JRE 資源回收的更多資訊,請參閱: