Ringkasan penyimpanan dalam cache di Cloud Storage FUSE

Cloud Storage FUSE menyediakan empat jenis penyimpanan dalam cache opsional untuk membantu meningkatkan performa pengambilan data:

Ringkasan penyimpanan cache file

Cache file Cloud Storage FUSE adalah cache baca berbasis klien yang menayangkan pembacaan file berulang dari penyimpanan cache yang lebih cepat sesuai pilihan Anda.

Manfaat penyimpanan dalam cache file

  • Peningkatan performa: cache file meningkatkan latensi dan throughput dengan menayangkan operasi baca langsung dari media cache. Operasi I/O kecil dan acak dapat jauh lebih cepat jika ditayangkan dari cache.

  • Menggunakan kapasitas yang ada: penyimpanan dalam cache file dapat menggunakan kapasitas mesin yang disediakan yang ada untuk direktori cache Anda tanpa dikenai biaya untuk penyimpanan tambahan. Hal ini mencakup SSD Lokal yang dipaketkan dengan jenis mesin Cloud GPU seperti a2-ultragpu, a3-highgpu, Persistent Disk (yang merupakan disk booting yang digunakan oleh setiap VM), atau /tmpfs dalam memori.

  • Biaya yang lebih rendah: hit cache ditayangkan secara lokal dan tidak dikenai biaya operasi atau jaringan Cloud Storage.

  • Total biaya kepemilikan yang lebih baik untuk pelatihan AI dan ML: caching file meningkatkan penggunaan Cloud GPU dan Cloud TPU dengan memuat data lebih cepat, sehingga mengurangi waktu pelatihan dan memberikan rasio harga-performa yang lebih besar untuk workload pelatihan AI dan ML.

Mengaktifkan dan mengonfigurasi cache file

Cache file dinonaktifkan secara default dan dapat diaktifkan serta dikonfigurasi menggunakan file konfigurasi Cloud Storage FUSE. Anda dapat mengontrol perilaku cache menggunakan kolom berikut:

  • max-size-mb: mengontrol kapasitas maksimum di direktori cache yang dapat ditempati data dalam cache. Secara default, kolom max-size-mb ditetapkan untuk memungkinkan data dalam cache bertambah hingga menempati semua kapasitas yang tersedia di direktori cache Anda.

  • cache-dir: menentukan direktori untuk menyimpan data cache file. Perhatikan bahwa menentukan direktori cache adalah prasyarat untuk mengaktifkan cache file.

  • ttl-secs: menentukan kapan data yang di-cache menjadi tidak berlaku dan perlu dimuat ulang dari Cloud Storage. Secara default, kolom ttl-secs disetel agar berakhir masa berlakunya dan diperbarui dari Cloud Storage setelah 60 detik tidak ada aktivitas. Sebaiknya tingkatkan nilai ini.

    Untuk mempelajari cara mengontrol pembatalan validasi data cache, lihat Mengonfigurasi pembatalan validasi data cache. Untuk informasi selengkapnya tentang penghapusan data yang di-cache, lihat Penghapusan.

  • enable-parallel-downloads: mempercepat performa baca untuk file besar berukuran lebih dari 1 GB, termasuk pembacaan pertama kali, dengan menggunakan beberapa pekerja untuk mendownload file secara paralel menggunakan direktori cache file sebagai buffering pengambilan data. Sebaiknya aktifkan download paralel untuk operasi pemulihan checkpoint dan penayangan. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan dan mengonfigurasi download paralel, lihat Mengonfigurasi download paralel.

Pembacaan Acak & Sebagian

Jika operasi baca file pertama dimulai dari awal file, pada offset 0, cache file Cloud Storage FUSE akan menyerap dan memuat seluruh file ke dalam cache, meskipun Anda hanya membaca dari subset rentang kecil. Hal ini memungkinkan pembacaan acak atau sebagian berikutnya dari objek yang sama ditayangkan langsung dari cache.

Jika operasi baca pertama file dimulai dari mana saja selain offset 0, Cloud Storage FUSE, secara default, tidak memicu pengambilan file lengkap asinkron. Untuk mengubah perilaku ini agar Cloud Storage FUSE menyerap file ke cache setelah pembacaan acak awal, tetapkan tanda cache-file-for-range-read ke true. Sebaiknya aktifkan tanda cache-file-for-range-read jika banyak operasi baca acak atau sebagian yang berbeda dilakukan pada objek yang sama.

Pengusiran

Penghapusan metadata dan data yang di-cache didasarkan pada algoritma yang paling jarang digunakan (LRU) yang dimulai setelah nilai minimum ruang yang dikonfigurasi per batas max-size-mb tercapai. Jika masa berlaku entri berakhir berdasarkan TTL-nya, panggilan Get metadata akan dilakukan terlebih dahulu ke Cloud Storage dan tunduk pada latensi jaringan. Karena data dan metadata dikelola secara terpisah, Anda mungkin mengalami satu entitas dihapus atau dibatalkan validasinya, tetapi tidak untuk entitas lainnya.

Persistensi

Cache Cloud Storage FUSE tidak dipertahankan saat di-unmount dan dimulai ulang. Untuk cache file, meskipun entri metadata yang diperlukan untuk menayangkan file dari cache dihapus saat di-unmount dan dimulai ulang, data dalam cache file mungkin masih ada di direktori file. Anda harus menghapus data di direktori cache file setelah di-unmount atau dimulai ulang.

Keamanan

Saat Anda mengaktifkan penyimpanan dalam cache, Cloud Storage FUSE menggunakan direktori cache yang Anda tentukan menggunakan kolom cache-dir sebagai direktori dasar untuk cache guna mempertahankan file dari bucket Cloud Storage dalam format yang tidak dienkripsi. Setiap pengguna atau proses yang memiliki akses ke direktori cache ini dapat mengakses file ini. Sebaiknya batasi akses ke direktori ini.

Akses langsung atau beberapa akses ke cache file

Menggunakan proses selain Cloud Storage FUSE untuk mengakses atau mengubah file di direktori cache dapat menyebabkan kerusakan data. Cache Cloud Storage FUSE bersifat khusus untuk setiap proses Cloud Storage FUSE yang berjalan tanpa mengetahui berbagai proses Cloud Storage FUSE yang berjalan di mesin yang sama atau berbeda. Oleh karena itu, sebaiknya jangan gunakan direktori cache yang sama untuk proses FUSE Cloud Storage yang berbeda.

Jika beberapa proses Cloud Storage FUSE perlu berjalan di mesin yang sama, setiap proses Cloud Storage FUSE harus mendapatkan direktori cache spesifiknya sendiri, atau menggunakan salah satu metode berikut untuk memastikan data Anda tidak rusak:

  • Memasang semua bucket dengan cache bersama: gunakan pemasangan dinamis untuk memasang semua bucket yang dapat Anda akses dalam satu proses dengan cache bersama. Untuk mempelajari lebih lanjut, lihat Pemasangan dinamis Cloud Storage FUSE.

  • Mengaktifkan penyimpanan dalam cache di bucket tertentu: mengaktifkan penyimpanan dalam cache hanya di bucket yang ditentukan menggunakan pemasangan statis. Untuk mempelajari lebih lanjut, lihat Pemasangan statis Cloud Storage FUSE.

  • Hanya menyimpan cache folder atau direktori tertentu: hanya memasang dan menyimpan cache folder tingkat bucket tertentu, bukan memasang seluruh bucket. Untuk mempelajari lebih lanjut, lihat Memasang direktori dalam bucket.

Ringkasan penyimpanan cache statistik

Cache statistik Cloud Storage FUSE adalah cache untuk metadata objek yang meningkatkan performa untuk operasi khusus atribut file seperti ukuran, waktu perubahan, atau izin. Penggunaan cache statistik akan meningkatkan latensi dengan menggunakan data yang di-cache untuk melakukan operasi, bukan mengirim permintaan objek statistik ke Cloud Storage. Untuk mempelajari penyimpanan dalam cache statistik lebih lanjut, lihat dokumentasi Semantik di GitHub.

Cache statistik diaktifkan secara default dan dapat dikonfigurasi menggunakan file konfigurasi Cloud Storage FUSE. Ukuran maksimum cache dikontrol oleh kolom stat-cache-max-size-mb, yang memiliki nilai default 32 (32 MB). TTL cache dikontrol oleh kolom ttl-secs, yang memiliki nilai default 60 (60 detik).

Praktik terbaik

Untuk penyimpanan dalam cache statistik, sebaiknya gunakan nilai default 32 untuk kolom stat-cache-max-size-mb jika beban kerja Anda melibatkan hingga 20.000 file. Jika beban kerja Anda lebih besar dari 20.000 file, tingkatkan nilai stat-cache-max-size-mb sebesar 10 untuk setiap tambahan 6.000 file, sekitar 1.500 byte per file.

stat-cache-max-size-mb adalah batas tingkat pemasangan, dan penggunaan memori aktual mungkin lebih rendah dari nilai yang Anda tentukan. Atau, Anda dapat menetapkan stat-cache-max-size-mb ke -1 untuk mengizinkan cache statistik menggunakan memori sebanyak yang diperlukan.

Ringkasan cache jenis

Cache jenis Cloud Storage FUSE adalah cache metadata yang mempercepat performa untuk operasi metadata yang khusus untuk keberadaan file atau direktori. Menggunakan cache jenis akan meningkatkan latensi dengan mengurangi jumlah permintaan yang dibuat ke Cloud Storage untuk memeriksa apakah file atau direktori ada dengan menyimpan informasi ini secara lokal. Untuk mempelajari lebih lanjut jenis caching, lihat dokumentasi Semantik di GitHub.

Cache jenis diaktifkan secara default dan dapat dikonfigurasi menggunakan file konfigurasi Cloud Storage FUSE. Ukuran maksimum cache dikontrol oleh kolom type-cache-max-size-mb, yang memiliki nilai default 4 (4 MB). TTL cache dikontrol oleh kolom ttl-secs, yang memiliki nilai default 60 (60 detik).

Praktik terbaik

Untuk penyimpanan dalam cache jenis, sebaiknya gunakan nilai default 4 untuk kolom type-cache-max-size-mb jika jumlah maksimum file dalam satu direktori dari bucket yang Anda pasang berisi 20.000 file atau kurang. Jika jumlah maksimum file dalam satu direktori yang Anda pasang berisi lebih dari 20.000 file, tingkatkan nilai type-cache-max-size-mb dengan 1 untuk setiap 5.000 file, sekitar 200 byte per file.

type-cache-max-size-mb adalah batas tingkat pemasangan, dan penggunaan memori aktual mungkin lebih rendah dari nilai yang ditentukan. Atau, Anda dapat menetapkan nilai type-cache-max-size-mb ke -1 untuk mengizinkan cache jenis menggunakan memori sebanyak yang diperlukan.

Ringkasan cache daftar

Cache daftar Cloud Storage FUSE adalah untuk respons direktori dan daftar file, atau ls, yang meningkatkan kecepatan operasi daftar. Cache daftar sangat berguna untuk beban kerja yang mengulangi listingan direktori lengkap sebagai bagian dari eksekusi, seperti pelatihan AI/ML yang berjalan.

Cache daftar disimpan dalam memori di cache halaman, yang dikontrol oleh kernel berdasarkan ketersediaan memori, bukan cache statistik dan jenis, yang disimpan dalam memori komputer Anda dan dikontrol oleh Cloud Storage FUSE.

Mengaktifkan penyimpanan daftar ke dalam cache

Cache daftar dinonaktifkan secara default. Anda dapat mengaktifkan penyimpanan dalam cache daftar menggunakan kolom kernel-list-cache-ttl-secs dengan salah satu nilai berikut:

  • Nilai positif yang mewakili time to live (TTL) dalam detik untuk menyimpan respons daftar direktori di cache halaman kernel.

  • Nilai -1 untuk mengabaikan masa berlaku entri dan menampilkan respons daftar dari cache jika tersedia.

Untuk mengaktifkan dan mengonfigurasi caching daftar, lihat file konfigurasi Cloud Storage FUSE.

Mengonfigurasi invalidasi cache

Bagian berikut menjelaskan cara mengonfigurasi pembatalan validasi cache untuk semua jenis cache.

Pembatalan validasi cache file, statistik, dan jenis

Untuk cache file, statistik, dan jenis, kolom ttl-secs menentukan TTL dalam detik untuk durasi penggunaan metadata yang di-cache sejak diambil dari Cloud Storage hingga masa berlakunya habis dan perlu diperbarui.

Anda dapat mengonfigurasi ttl-secs di file konfigurasi Cloud Storage FUSE.

Kolom ttl-secs ditetapkan ke 60 secara default. Jika Anda menentukan nilai untuk ttl-secs yang lebih besar dari 0, metadata untuk cache file hanya akan tetap valid selama jangka waktu yang Anda tentukan. Untuk penyimpanan dalam cache file, sebaiknya tingkatkan nilai ttl-secs berdasarkan waktu yang diharapkan antara pembacaan berulang saat Anda menyeimbangkan kebutuhan konsistensi. Berdasarkan tingkat kepentingan dan frekuensi perubahan data, sebaiknya tetapkan nilai ttl-secs setinggi mungkin sesuai dengan workload Anda. Jika entri metadata menjadi tidak valid, pembacaan berikutnya akan dikueri dari Cloud Storage.

Selain menerima nilai yang mewakili TTL tertentu dalam detik sebelum metadata yang di-cache berakhir masa berlakunya dan perlu dimuat ulang, Anda dapat menggunakan nilai berikut untuk menentukan cara file dibaca:

  • Nilai ttl-secs dari 0: memastikan file dengan data terbaru dibaca dengan mengeluarkan panggilan metadata GET ke Cloud Storage yang memeriksa file tempat file tersebut ditayangkan untuk memastikan cache konsisten. Jika file dalam cache sudah yang terbaru, file tersebut akan ditayangkan langsung dari cache. Menentukan nilai selain 0 dapat menyebabkan penurunan performa karena panggilan harus selalu dilakukan ke Cloud Storage untuk memeriksa metadata terlebih dahulu. Jika file ada dalam cache dan belum berubah, file akan ditayangkan dari cache dengan konsistensi setelah panggilan metadata GET.

  • Nilai ttl-secs dari -1: memastikan file selalu dibaca dari cache jika tersedia, tanpa memeriksa konsistensi. Menayangkan file tanpa memeriksa konsistensi dapat menayangkan data yang tidak konsisten, dan hanya boleh digunakan untuk sementara untuk beban kerja yang berjalan dalam tugas dengan data yang tidak berubah. Misalnya, menggunakan nilai -1 berguna untuk pelatihan machine learning, dengan data yang sama dibaca di beberapa epoch tanpa perubahan.

Mencantumkan pembatalan validasi cache

Pembatalan validasi cache daftar ditetapkan dengan menentukan nilai yang lebih besar dari 0 menggunakan kolom kernel-list-cache-ttl-secs. Respons daftar direktori disimpan di cache halaman kernel dan tetap valid selama jangka waktu yang Anda tentukan. Secara default, cache daftar dinonaktifkan dan ditetapkan ke nilai 0. Saat Anda menentukan nilai -1, Cloud Storage FUSE akan menonaktifkan masa berlaku cache daftar dan menampilkan respons daftar dari cache jika tersedia.

Membaca jalur untuk data dalam cache

Cache Cloud Storage FUSE mempercepat pembacaan berulang setelah ditransfer ke cache. Pembacaan pertama kali dan cache yang tidak ada akan langsung diarahkan ke Cloud Storage dan tunduk pada latensi jaringan Cloud Storage yang normal. Untuk meningkatkan performa pembacaan pertama kali, lihat Meningkatkan pembacaan pertama kali.

Pertimbangan

  • Mengaktifkan caching file, caching statistik, caching jenis, atau caching daftar dapat meningkatkan performa, tetapi mengurangi konsistensi, yang biasanya terjadi saat Anda mengakses bucket yang sama menggunakan beberapa klien dengan tingkat perubahan yang tinggi. Untuk mengurangi dampak pada konsistensi, sebaiknya mount bucket sebagai hanya baca. Untuk mempelajari perilaku caching lebih lanjut, lihat dokumentasi semantik Cloud Storage FUSE di GitHub.

  • Jika entri cache file belum habis masa berlakunya berdasarkan TTL-nya dan file tersebut ada dalam cache, seluruh operasi akan ditayangkan dari cache klien lokal tanpa permintaan apa pun yang dikeluarkan ke Cloud Storage.

  • Jika masa berlaku entri cache file telah habis berdasarkan TTL-nya, panggilan Get metadata akan dilakukan terlebih dahulu ke Cloud Storage, dan jika file tidak ada dalam cache, file akan diambil dari Cloud Storage. Kedua operasi tersebut tunduk pada latensi jaringan. Jika entri metadata telah dibatalkan validasinya, tetapi file ada dalam cache, dan pembuatan objeknya belum berubah, file tersebut hanya ditayangkan dari cache setelah panggilan Get metadata dilakukan untuk memeriksa apakah data valid.

  • Jika klien Cloud Storage FUSE mengubah file yang di-cache atau metadatanya, file tersebut akan langsung dibatalkan validasinya dan konsistensi akan terjamin dalam pembacaan berikutnya oleh klien yang sama. Namun, jika klien yang berbeda mengakses file yang sama atau metadatanya, dan entrinya di-cache, maka versi file atau metadata yang di-cache akan dibaca, bukan versi yang diperbarui hingga file tersebut dibatalkan validasinya oleh setelan TTL klien tertentu tersebut.

  • Untuk menghindari thrashing cache, pastikan seluruh set data Anda sesuai dengan kapasitas cache. Selain itu, pertimbangkan kapasitas dan performa maksimum yang dapat diberikan media cache Anda. Jika Anda mencapai performa maksimum, batas kapasitas, atau keduanya dari cache yang disediakan, sebaiknya baca langsung dari Cloud Storage yang memiliki batas jauh lebih tinggi daripada Cloud Storage FUSE.

Langkah selanjutnya