Cloud Storage FUSE 中的快取功能總覽

本頁詳細說明 Cloud Storage FUSE 適用的快取選項,以及如何設定各個快取類型。

為提升資料擷取效能,Cloud Storage FUSE 提供四種選用快取類型:

注意事項

  • 啟用檔案快取、統計資料快取、類型快取或清單快取功能可提升效能,但會降低一致性。如果您使用多個用戶端存取同一個 bucket,且變更率很高,通常就會發生這種情況。為減少對一致性的影響,建議您以唯讀模式掛接 bucket。如要進一步瞭解快取行為,請參閱 Cloud Storage FUSE GitHub 說明文件中的「Cloud Storage FUSE 語意」。

  • 如果檔案快取項目尚未根據存留時間 (TTL) 過期,且檔案位於快取中,系統會從本機用戶端快取提供該檔案的讀取作業,而不會向 Cloud Storage 發出任何要求。

  • 如果檔案快取項目已根據 TTL 過期,系統會先對 Cloud Storage 進行 GET 檔案屬性呼叫,如果檔案不在快取中,或檔案屬性指出檔案內容已變更,系統就會從 Cloud Storage 擷取檔案內容。這兩項作業都會受到網路延遲影響。如果快取檔案屬性已失效,但檔案內容位於快取中,且物件產生作業未變更,則只有在 GET 檔案屬性呼叫確認檔案內容有效後,系統才會從快取提供檔案內容。

  • 如果 Cloud Storage FUSE 用戶端修改快取檔案的內容或檔案屬性,該檔案的快取項目會立即失效,確保同一用戶端下次讀取時的一致性。不過,如果不同用戶端存取相同檔案內容或檔案屬性,且各自的項目已快取,這些用戶端會繼續讀取快取的檔案內容或檔案屬性版本,直到個別存留時間 (TTL) 設定導致失效為止。

  • 為避免快取顛簸,請確保整個資料集符合快取容量。此外,也請考慮快取媒體可提供的最大容量和效能。如果達到佈建快取的效能上限、容量限制或兩者皆是,建議直接從 Cloud Storage 讀取資料,因為 Cloud Storage 的限制比 Cloud Storage FUSE 高得多。

讀取快取資料的路徑

Cloud Storage FUSE 快取會在資料擷取至快取後,加快重複讀取作業的速度。首次讀取和快取未命中都會直接前往 Cloud Storage,並受到一般 Cloud Storage 網路延遲的影響。如要提升首次讀取效能,請參閱「預先填入中繼資料快取」。

檔案快取總覽

Cloud Storage FUSE 檔案快取是根據用戶端的讀取快取,可從本機檔案系統支援的快取儲存空間提供重複的檔案讀取作業。如要進一步瞭解檔案快取,請參閱「檔案快取」頁面。

平行下載

啟用檔案快取後,系統會自動在 Cloud Storage FUSE 2.12 以上版本啟用平行下載功能。平行下載功能可加快讀取超過 1 GB 大型檔案的效能,包括首次讀取,方法是使用多個工作站平行下載檔案,並將檔案快取目錄做為預先擷取緩衝區。平行下載可用於最佳化人工智慧 (AI) 和機器學習 (ML) 工作負載的效能,例如模型服務、檢查點還原,以及對大型物件進行訓練。如要進一步瞭解平行下載功能,請參閱「平行下載」。

設定檔案快取

如要瞭解如何設定檔案快取,請參閱「使用 Cloud Storage FUSE 檔案快取」。

統計資料快取總覽

Cloud Storage FUSE 狀態快取是物件中繼資料的快取,可提升檔案屬性 (例如大小、修改時間或權限) 特定作業的效能。使用 stat 快取可改善延遲時間,因為系統會使用快取資料執行作業,而不是將 stat 物件要求傳送至 Cloud Storage。如要進一步瞭解 stat 快取,請參閱 Cloud Storage FUSE GitHub 說明文件中的「Cloud Storage FUSE 語意」。

設定統計資料快取

系統預設會啟用 stat 快取,您可以使用 Cloud Storage FUSE 設定檔Cloud Storage FUSE CLI 進行設定。快取的最大大小可透過下列其中一種方法控管:

如要進一步瞭解設定狀態快取時的預設值和建議值,請參閱 Cloud Storage FUSE CLICloud Storage FUSE 設定檔頁面。

設定負面統計資料快取

Cloud Storage FUSE 也提供負面狀態快取功能,可讓您為不存在的檔案或負面結果設定狀態快取項目的存留時間。負面狀態快取的 TTL 可透過下列其中一種方法控制:

型別快取總覽

Cloud Storage FUSE 類型快取是中繼資料快取,可儲存快取的類型資訊 (例如檔案、目錄或符號連結),並加快檔案或目錄存在與否的中繼資料作業效能。使用型別快取可減少向 Cloud Storage 發出的要求數量,藉此檢查檔案或目錄是否存在,並在本機儲存這項資訊,進而改善延遲情況。如要進一步瞭解型別快取,請參閱 Cloud Storage FUSE GitHub 說明文件中的「Cloud Storage FUSE 語意」。

設定型別快取

類型快取預設為啟用狀態,可使用 Cloud Storage FUSE 設定檔gcsfuse CLI 進行設定。快取的最大大小可透過下列其中一種方法控管:

如要進一步瞭解類型快取和建議值,請參閱 gcsfuse CLICloud Storage FUSE 設定檔頁面。

快取的 TTL 可透過下列其中一種方法控管:

清單快取總覽

Cloud Storage FUSE 清單快取適用於目錄和檔案清單,或 ls,可加快清單作業速度。對於在執行期間重複完整目錄清單的工作負載 (例如 AI/機器學習訓練執行),清單快取特別實用。

清單快取會保留在頁面快取中的記憶體,並由核心根據可用記憶體控制,而非保留在電腦記憶體中並由 Cloud Storage FUSE 控制的狀態和類型快取。

設定清單快取

您可以透過下列任一方法啟用清單快取:

如要啟用及設定清單快取,請參閱 Cloud Storage FUSE 設定檔gcsfuse CLI 參考頁面。

設定檔案、狀態和類型快取失效

下列各節說明如何為所有快取類型設定快取失效。

如要指定檔案、統計資料和類型快取的 TTL (以秒為單位),請使用下列其中一種方法,指定從 Cloud Storage 擷取快取中繼資料到快取過期並需要重新整理的時間長度:

如果您指定的值大於 0,檔案快取的中繼資料只會在您指定的時間內保持有效。如果是檔案快取,建議您根據重複讀取之間預期的時間間隔增加值,同時兼顧一致性需求。根據資料變更的重要性與頻率,建議您盡可能將值設為工作負載允許的最高值。中繼資料項目失效後,後續讀取作業會從 Cloud Storage 查詢。

除了接受代表特定 TTL 的值 (以秒為單位),讓快取中繼資料在過期前需要重新整理,您也可以使用下列值指定檔案的讀取方式:

  • 0:發出 GET 中繼資料呼叫至 Cloud Storage,檢查所服務的檔案,確保快取一致,藉此確保讀取最新資料的檔案。如果快取中的檔案是最新版本,系統會直接從快取提供檔案。 指定 0 以外的值可能會導致效能降低,因為系統一律必須先呼叫 Cloud Storage 來檢查中繼資料。如果檔案位於快取中且未變更,則在 GET 中繼資料呼叫後,系統會從快取提供檔案,確保一致性。

  • -1:確保一律從快取讀取檔案 (如有),而不檢查一致性。如果未檢查一致性就提供檔案,可能會提供不一致的資料,因此只應暫時用於工作負載,這些工作負載會在資料不會變更的工作中執行。舉例來說,使用 -1 值有助於進行機器學習訓練,因為在多個訓練週期中,系統會讀取相同的資料,且不會變更。

列出快取撤銷作業

如要設定清單快取失效,請使用下列任一方法指定大於 0 的值:

  • --kernel-list-cache-ttl-secs選項
  • file-system:kernel-list-cache-ttl-secs 欄位

目錄清單回應會保留在核心的網頁快取中,並在您指定的時間內保持有效。指定 -1 值時,Cloud Storage FUSE 會停用清單快取到期時間,並在快取可用時從快取傳回清單回應。指定 0 值會停用清單快取。

後續步驟