5.13 最佳化透過 WAN 連接進行的資料傳輸

您可以最佳化資料傳輸效能並針對 WAN 連接予以微調。若要實現此目的,您可以修改系統從您在 PlateSpin 伺服器主機上的組態工具中所進行之設定中讀取的組態參數。如需一般程序,請參閱PlateSpin 組態

5.13.1 調整參數

使用檔案傳輸組態參數設定可最佳化整個 WAN 中的資料傳輸。以下設定是全域性的,會影響所有檔案式複製及 VSS 複製。

附註:若修改了這些值,高速網絡 (例如千兆位元以太網路) 上的複製時間可能會受到負面影響。建議您在修改其中的任何參數之前先諮詢 PlateSpin 支援人員。

表 5-4 列出了 PlateSpin 組態頁面 (https://Your_PlateSpin_Server/platespinconfiguration/) 上控制檔案傳輸速度的組態參數,以及預設值和最大值。您可以透過試錯法修改這些值,以最佳化高延遲 WAN 環境中的操作。

表 5-4 檔案傳輸組態參數的預設值和最佳值

參數

預設值

最大值

AlwaysUseNonVSSFileTransferForWindows2003

False

 

FileTransferCompressionThreadsCount

控制用於封包層級資料壓縮的線串數。如果停用壓縮,此設定會被忽略。由於壓縮受 CPU 的限制,因此該設定可能會影響效能。

2

FileTransferBufferThresholdPercentage

決定在建立並傳送新網路封包之前至少必須緩衝的資料量。

10

 

FileTransferKeepAliveTimeOutMilliSec

指定 TCP 逾時後需要等待多久才能開始傳送持續連接訊息。

120000

 

FileTransferLongerThan24HoursSupport

True

 

FileTransferLowMemoryThresholdInBytes

決定伺服器何時認為自己處於低記憶體狀態,這會導致某些網路行為的增強。

536870912

 

FileTransferMaxBufferSizeForLowMemoryInBytes

指定處於低記憶體狀態時使用的內部緩衝區大小。

5242880

 

FileTransferMaxBufferSizeInBytes

指定用於保留封包資料的內部緩衝區大小。

31457280

 

FileTransferMaxPacketSizeInBytes

決定將傳送的最大封包。

1048576

 

FileTransferMinCompressionLimit

指定封包層級壓縮限定值,以位元組計。

0 (停用)

最大值為 65536 (64 KB)

FileTransferPort

3725

 

FileTransferSendReceiveBufferSize

定義複製網路中 TCP 連接之傳送和接收緩衝區的最大大小 (以位元組計)。緩衝區大小會影響 TCP 接收視窗 (RWIN) 大小,該大小設定了在未獲得 TCP 確認的情況下可以傳送的位元組數。此設定對檔案式傳輸和區塊式傳輸都會有影響。依據您的網路頻寬和延遲調整緩衝區大小可提高輸送量並減輕 CPU 處理負荷。

當此值設定為零 (關閉) 時,系統會使用預設的 TCP 緩衝區大小 (8 KB)。若要使用自訂大小,請指定相應的位元組數量。

使用以下公式確定適當的值︰

((以 Mbps 計的連結速度 / 8) * 延遲秒數)) * 1000 * 1024

例如,如果連結速度為 100 Mbps,延遲時間為 10 毫秒,則正確的緩沖區大小應當為︰

(100/8)*0.01*1024*1000 = 128000 位元組

如需調整資訊,請參閱調整 FileTransferSendReceiveBufferSize

0 (8192 位元組)

最大值為 5242880 (5 MB)

FileTransferSendReceiveBufferSizeLinux

指定 Linux 檔案傳輸連接的 TCP/IP 接收視窗 (RWIN) 大小設定。它用於控制所傳送的未經 TCP 確認的位元組數量。

當此值設定為零 (關閉) 時,系統會依據 FileTransferSendReceiveBufferSize 設定自動計算 Linux 的 TCP/IP 緩衝區大小值。如果兩個參數都設定為零 (關閉),則預設值為 248 KB。若要使用自訂大小,請指定相應的位元組數量。

附註:在以前的發行版本中,您需要將此參數設定為目標值的 1/2,但現在不再需要如此設定。

0 (253952 位元組)

 

FileTransferShutDownTimeOutInMinutes

1090

 

FileTransferTCPTimeOutMilliSec

設定 TCP 傳送逾時值與 TCP 接收逾時值。

30000

 

PostFileTransferActionsRequiredTimeInMinutes

60

 

5.13.2 調整 FileTransferSendReceiveBufferSize

FileTransferSendReceiveBufferSize 參數定義複製網路中 TCP 連接的傳送和接收緩衝區的最大大小 (以位元組計)。緩衝區大小會影響 TCP 接收視窗 (RWIN) 大小,該大小設定了在未獲得 TCP 確認的情況下可以傳送的位元組數。此設定對檔案式傳輸和區塊式傳輸都會有影響。依據您的網路頻寬和延遲調整緩衝區大小可提高輸送量並減輕 CPU 處理負荷。

您可以調整 FileTransferSendReceiveBufferSize 參數,來最佳化複製網路中從來源伺服器至目標伺服器的區塊或檔案傳輸。請在 PlateSpin 組態頁面 (https://Your_PlateSpin_Server/PlateSpinConfiguration/) 上設定該參數。

若要計算最佳緩衝區大小,請執行以下步驟︰

  1. 確定來源伺服器與目標伺服器之間的延遲。

    其目標是儘可能準確地確定大小接近 MTU 之封包的延遲。

    1. 以管理員使用者身分登入來源伺服器。

    2. 在指令提示符處輸入以下指令:

      # ping <target-server-ip-address> -f -l <MTU_minus_28> -n 10

      通常,ping-l 選項會在 target-server-ip-address 之指定封包內容的標頭中新增 28 個位元組。因此,建議從 MTU - 28 個位元組的大小開始嘗試。

    3. 重複修改封包內容並重新輸入步驟 1.b 中的指令,直到收到以下訊息︰

      封包需要分割

    4. 記下延遲秒數。

      例如,如果延遲為 35 毫秒,則請記下 0.035 做為延遲值。 

  2. 計算以位元組計的初始緩衝區大小︰

    緩衝區大小 = (以 Mbps 計的頻寬 / 8) * 延遲秒數 * 1000 * 1024

    網路頻寬採用二進位值。即,10 Gbps = 10240 Mbps,1 Gbps = 1024 Mbps。

    例如,延遲為 35 毫秒的 10 Gbps 網路的計算公式為︰

    緩衝區大小 = (10240 / 8) * 0.035 * 1000 * 1024 = 45875200 位元組
  3. (選擇性) 透過向上捨入至最大區段大小 (MSS) 的倍數計算最佳緩衝區大小。

    1. 確定 MSS︰

      MSS = 以位元組計的 MTU 大小 - (IP 標題大小 + TCP 標題大小) 

      IP 標頭大小為 20 位元組。TCP 標頭大小為 20 位元組 + 時間戳記等選項的位元組數。

      例如,如果您的 MTU 大小為 1470,則 MSS 通常為 1430。

      MSS = 1470 位元組 - (20 位元組 + 20 位元組) = 1430 位元組
    2. 計算最佳緩衝區大小︰

      最佳緩衝區大小 = (roundup(緩衝區大小 / MSS )) * MSS

      以上面的數值為例︰

      最佳緩衝區大小 = (roundup(45875200 / 1430)) * 1430 
                   = 32081 * 1430 
                   = 45875830

      請向上捨入而不是向下捨入,因為向下捨入得出的 MSS 倍數小於緩衝區大小 45875200︰

      非最佳緩衝區大小 = 32080 * 1430 = 45874400