本頁說明檔案系統轉移的最佳做法。
效能最佳做法
以下是確保轉移作業順利進行的最佳做法:
傳輸大量資料庫 (通常至少 100 GB) 來基準測試效能。
Storage 轉移服務是一項大規模的處理量最佳化服務,因此在非常小型測試資料集上的效能,並不能代表實際工作環境中大型資料集的效能。
個別來源資料夾的檔案數量上限為 100 萬個。包含數百萬個檔案的目錄可能會減慢整個傳輸作業的速度。
在個別虛擬機器 (VM) 中執行代理程式,以便更有效地調整資源消耗量。
確認代理程式機器的網路介面大小符合所需的讀取/寫入頻寬。
舉例來說,如果您想充分利用 20 Gbps 的廣域網路 (WAN),代理程式機器的網路介面必須支援 20 Gbps,才能從網路檔案系統讀取資料,並將其他 20 Gbps 的資料傳輸至 Cloud Storage,或是 40 Gbps 的總頻寬。
請監控代理程式機器的 CPU、記憶體和網路,確保機器不會因其他工作負載而負荷過重,否則可能會對效能造成負面影響。請參閱代理程式硬體需求,瞭解建議的記憶體和 CPU 數字。
多部分上傳
如果您要從 POSIX 檔案系統傳輸至 Cloud Storage,或是在 POSIX 檔案系統之間傳輸,請考慮啟用多部分上傳功能。透過多部分上傳功能,您可以將大型檔案 (大於 1 GiB) 分割成較小的部分,並同時上傳這些部分,進而將包含大型檔案的傳輸作業加快最多 300%。
HDFS 和 S3 相容檔案系統不支援多部分上傳。
啟用多部分上傳功能
如要啟用多部分上傳功能,請按照下列步驟操作:
您必須授予必要權限給授權轉移代理程式的帳戶 (使用者帳戶或服務帳戶)。
目的地或中繼值區不得設有保留政策或物件保留設定。
啟用後,Storage Transfer Service 會在可能加快傳輸速度時自動使用多部分上傳功能。
設定多部分物件生命週期規則
您可以使用 Cloud Storage 物件生命週期管理功能,中止未完成的多部分上傳作業,並刪除相關部分。請參閱 Cloud Storage 說明文件中的「中止不完整的多部分上傳」一文。
建議將 age
值設為 7 天。
停用多部分上傳功能
如要停用多部分上傳功能,請使用 docker run
重新安裝轉移代理程式,並傳遞 --enable-multipart=false
:
sudo docker run --ulimit memlock=64000000 -d --rm \ -v /usr/local/research:/usr/local/research \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --agent-pool=AGENT_POOL \ --creds-file=CREDENTIAL_FILE \ --hostname=$(hostname) \ --enable-multipart=false
更改下列內容:
PROJECT_ID
會指定要代管轉移作業的專案 ID。CREDENTIAL_FILE
:如果轉移代理程式使用服務帳戶進行驗證,請指定 JSON 格式服務帳戶憑證檔案的路徑。
或者,您也可以撤銷授權代理帳戶的必要權限,無論是使用者帳戶或服務帳戶皆可。
發揮轉移代理程式最佳效能
轉移成效會受到下列變數影響:
檔案系統功能。
底層硬體限制。
硬碟媒體類型、輸入/輸出匯流排和區域網路 (LAN) 連線都會影響效能。
WAN 傳輸量和使用率。
速度較慢或使用率高的 WAN 會降低效能。
檔案特性。
舉例來說,由於網路額外負擔,許多大型檔案的網路傳輸量會高於許多小檔案。
由於這些變數,我們無法預測實際成效,也無法提供最佳的使用服務專員人數。
建議您至少使用三個代理程式,並盡可能在不同的機器上執行,以便在發生錯誤時仍能進行轉移。您可以在轉移作業執行期間新增轉移代理程式,以便動態提升效能。
如要觀察新增代理人的影響,並選擇最適合您環境的代理人數量,請執行下列操作:
開始執行至少需要 1 小時的大型轉移作業。例如,啟動至少包含 100,000 個檔案且總大小至少為 100 GB 的傳輸作業。
請等待傳輸量趨於穩定,然後判斷是否受 WAN 容量或頻寬上限限制。
如果 WAN 容量未達飽和狀態,且未達所需的轉移上限,請新增其他代理程式。額外的代理程式會自動提高轉移傳輸量。請等待約 3 分鐘,讓 Cloud Monitoring 中的傳輸量穩定下來。
重複執行步驟 3 和 4,每次新增一個服務專員,直到達到所需上限為止。只要有運算、檔案系統和網路資源,每個代理程式集區最多可同時執行 100 個代理程式。
如果在達到所需上限之前,就已用盡傳出頻寬,您可以採取下列任一做法:
如果您已新增代理程式,但總處理量並未增加,且 WAN 未達飽和狀態,請調查檔案系統總處理量。在極少數的情況下,檔案系統的總處理量會飽和,導致您無法提高傳輸效能。
命名代理程式
建議您在命名代理人時採取下列做法:
請務必在代理程式中加入主機名稱。這有助於您找出代理程式執行的機器。建議您將
--hostname=$(hostname)
傳遞至 Dockerrun
指令。選擇代理程式前置字串配置,以便在監控和基礎架構組織的情況下識別代理程式。例如:
如果您有三個不同的轉移專案,建議您在代理程式中加入團隊名稱。例如
logistics
。如果您要為兩個不同的資料中心執行兩個不同的轉移專案,建議您在代理程式前置字串中加入資料中心名稱。例如
omaha
。