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