Cloud Storage FUSE 中的快取功能總覽

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

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

注意事項

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

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

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

  • 如果 Cloud Storage FUSE 用戶端修改快取檔案或其中繼資料,檔案會立即失效,且同一個用戶端在後續讀取時會確保一致性。不過,如果不同用戶端存取相同檔案或其 metadata,且該檔案或 metadata 的項目已快取,則系統會讀取快取版本,而非更新版本,直到該特定用戶端的 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 快取,請參閱 GitHub 上的語意說明文件

設定統計資料快取

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

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

設定負面統計資料快取

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

型別快取總覽

Cloud Storage FUSE 類型快取是中繼資料快取,可加快檔案或目錄存在與否的中繼資料作業效能。使用快取類型可減少向 Cloud Storage 發出的要求數量,藉此檢查檔案或目錄是否存在,並將這項資訊儲存在本機,進而縮短延遲時間。如要進一步瞭解型別快取,請參閱 GitHub 上的語意文件

設定型別快取

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

如要進一步瞭解型別快取和建議值,請參閱「CLI 選項」或「設定檔」頁面。

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

清單快取總覽

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

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

設定清單快取

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

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

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

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

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

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

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

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

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

列出快取撤銷作業

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

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

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

後續步驟