Sun Java System Message Queue 3.7 UR1 管理指南

nodelay

nodelay 特性會影響用於指定協定的 Nagle 演算法 (TCP/IP 上 TCP_NODELAY 傳輸層選項的值)。Nagle 演算法可用以改善使用慢速連線 (例如廣域網路 (WAN) 等) 之系統上的 TCP 效能。

使用該演算法時,TCP 會將資料包裝為較大的資料封包,從而避免傳送一些小的資料塊到遠端系統。如果寫入套接的資料未填滿所需緩衝區大小,那麼協定會在緩衝區填滿或特定延遲時間結束前,延遲傳送封包。一旦緩衝區填滿或發生逾時,即會傳送資料封包。

對於大部份的訊息傳送應用程式,如果傳送資料封包時沒有延遲 (未啟用 Nagle 演算法),則效能為最佳。這是因為用戶端與代理程式之間大部份都是請求/回應式互動:用戶端傳送資料封包給代理程式且等待回應。例如,典型的互動包括:

對於這些互動,大部份的資料封包都小於緩衝區大小。這表示,如果使用 Nagle 演算法,則代理程式在傳送回應到用戶之前,會延遲數毫秒。

但是,在連線速度緩慢和不需代理程式回應的狀況下,Nagle 演算法可改善效能。例如,在用戶端傳送非永久性訊息,或用戶端的確認未經代理程式確定 (DUPS_OK_ACKNOWLEDGE 階段作業) 等狀況下。