這個頁面提供相關指引,說明如何最佳化已啟用階層式命名空間的值區效能。
列出物件
以下是清單物件的效能考量:
- 在啟用階層式命名空間的值區中,列出整個值區或具有前置字串的所有物件時,作業必須遍歷每個資料夾和子資料夾,類似於檔案系統中的
ls -r
指令,因此會耗用大量資源。因此,如果 bucket 中有更多資料夾,物件清單的速度就會越慢。大量空白資料夾也可能對物件列出效能造成負面影響。為避免對效能造成負面影響,建議您盡量增加每個資料夾中的物件數量,並定期刪除空白資料夾。 - 在啟用階層式命名空間的 bucket 中,使用分隔符和特定前置字串列出或擷取特定資料夾中的物件和子資料夾,效率會更高,因為物件會整理在資料夾結構中。如要在使用分隔符號和特定前置字元時,盡可能提升產品資訊成效,請設定
includeFoldersAsPrefixes
參數。否則,Cloud Storage 會執行額外檢查來排除空白資料夾,這可能會減緩作業速度。如要進一步瞭解如何使用includeFoldersAsPrefixes
列出物件,請參閱「列出物件」。
資料夾管理
為有效管理資料夾,建議您採取下列做法:
- 預先建立資料夾結構:不要在物件上傳、重寫和組合作業期間,依賴自動建立資料夾,請改用建立資料夾作業,預先取得所需的資料夾結構。預先建立資料夾結構可提升效能一致性和可預測性。
- 盡量提高每個資料夾的物件比例:盡量提高物件與資料夾的比例,因為這樣可減少與資料夾建立和管理相關的額外負荷。
- 限制資料夾建立和刪除要求:由於資料夾具有階層式性質,因此建立或刪除資料夾比處理個別物件更耗用資源。為確保效能順暢,Cloud Storage 會將每個值區的這類作業限制為每秒 1000 個要求。超過這個上限的要求不會受到明確限制,但資源可用性會決定要求是否能順利處理。
- 定期刪除空資料夾:空資料夾可能會累積,特別是使用物件生命週期管理或刪除物件時,如果沒有明確刪除父項資料夾,就可能發生這種情況。累積的資料夾可能會影響物件列出作業和其他資料夾相關作業的效能。以下是刪除空白資料夾的幾種方法:
- 使用 Cloud Storage FUSE 或 Cloud Storage 連接器與啟用階層式命名空間的值區互動時,刪除目錄會一併刪除值區中的對應資料夾。
- 使用 Trusted Cloud 控制台或 Google Cloud CLI 時,可以透過遞迴刪除功能自動刪除資料夾。
- 您可以使用
delete_empty_folders.py
指令碼,以平行處理方式定期刪除空白資料夾。指令碼提供指定資料夾路徑前置字串的選項,讓指令碼在值區目錄結構的子集中執行資料夾刪除作業。此外,指令碼會刪除所有空資料夾 (隱含或明確建立),包括受管理資料夾和相關聯的 IAM 政策。如要瞭解如何使用指令碼,請參閱 GitHub 上的 README。