Cloud Storage FUSE menyediakan empat jenis caching opsional untuk membantu meningkatkan performa pengambilan data:
Ringkasan penyimpanan file dalam cache
Cache file Cloud Storage FUSE adalah cache baca berbasis klien yang memungkinkan pembacaan file berulang untuk disalurkan dari penyimpanan cache yang lebih cepat pilihan Anda. Cache file dinonaktifkan secara default.
Manfaat penyimpanan file dalam cache
Peningkatan performa: penyimpanan file ke cache meningkatkan latensi dan throughput dengan menyajikan operasi baca langsung dari media cache. Operasi I/O yang kecil dan acak dapat jauh lebih cepat jika disalurkan dari cache.
Gunakan kapasitas yang ada: penyimpanan file dalam cache dapat menggunakan kapasitas mesin yang disediakan yang ada untuk direktori cache Anda tanpa menimbulkan biaya untuk penyimpanan tambahan. Ini mencakup SSD Lokal yang dipaketkan dengan jenis mesin Cloud GPU seperti
a2-ultragpu
,a3-highgpu
, Persistent Disk (yang merupakan boot disk yang digunakan oleh setiap VM), atau/tmpfs
dalam memori.Pengurangan biaya: cache ditemukan ditayangkan secara lokal dan tidak dikenai biaya operasi Cloud Storage atau jaringan.
Peningkatan total biaya kepemilikan untuk pelatihan AI dan ML: caching file meningkatkan penggunaan Cloud GPU dan Cloud TPU dengan memuat data lebih cepat, yang mengurangi waktu pelatihan, dan memberikan rasio harga-performa yang lebih besar untuk workload pelatihan AI dan ML.
Mengaktifkan dan mengonfigurasi cache file
Saat fitur mengaktifkan cache file, Anda menetapkan kolom dalam file konfigurasi FUSE Cloud Storage. Daftar berikut menjelaskan kolom yang dapat Anda gunakan untuk mengontrol penyimpanan file dalam cache:
Anda dapat mengontrol kapasitas maksimum dalam direktori cache yang ditentukan yang dapat ditempati oleh data yang di-cache dengan menyetel
max-size-mb
.Secara default, kolom
max-size-mb
ditetapkan ke nilai-1
, yang memungkinkan data yang di-cache untuk bertambah hingga menempati semua kapasitas yang tersedia di direktori yang Anda tentukan sebagai nilai untukcache-dir
.Anda dapat menentukan direktori untuk menyimpan data cache file menggunakan kolom
cache-dir
. Perlu diperhatikan bahwa penetapan direktori cache adalah prasyarat untuk mengaktifkan cache file.Anda dapat mengontrol waktu kapan data yang di-cache menjadi tidak valid menggunakan kolom
ttl-secs
. Secara default, kolomttl-secs
disetel ke60
, yang menentukan 60 detik. Sebaiknya tingkatkan nilainya.Untuk detail selengkapnya tentang cara mengontrol pembatalan data yang di-cache, lihat Mengonfigurasi pembatalan validasi data cache. Untuk informasi selengkapnya tentang penghapusan data yang di-cache, lihat Penghapusan.
Pembacaan Acak & Parsial
Jika operasi baca file pertama dimulai dari awal file, atau mengimbangi 0
, cache file Cloud Storage FUSE menyerap dan memuat seluruh file ke dalam cache, meskipun Anda hanya membaca dari subset rentang kecil. Hal ini
memungkinkan pembacaan sebagian atau acak berikutnya dari objek yang sama disalurkan
langsung dari cache.
Jika operasi baca pertama file dimulai dari mana saja selain offset 0
, secara default Cloud Storage FUSE tidak memicu pengambilan file lengkap asinkron.
Untuk mengubah perilaku ini agar Cloud Storage FUSE menyerap file ke cache pada pembacaan acak awal, tetapkan flag cache-file-for-range-read
ke true
. Sebaiknya aktifkan flag cache-file-for-range-read
jika banyak operasi baca acak atau sebagian yang berbeda dilakukan pada
objek yang sama.
Penggusuran
Penghapusan metadata dan data yang di-cache didasarkan pada algoritma yang paling jarang digunakan
(LRU) yang dimulai setelah batas ruang yang dikonfigurasi per
batas max-size-mb
tercapai. Jika masa berlaku entri entri didasarkan pada TTL, panggilan Get metadata akan terlebih dahulu dilakukan ke Cloud Storage dan bergantung pada latensi jaringan. Karena data dan metadata dikelola secara terpisah, Anda mungkin
mengalami satu entitas yang dikeluarkan atau dibatalkan validasinya, bukan yang lain.
Performa
Cache Cloud Storage FUSE berfungsi dengan direktori yang ditentukan pengguna yang didukung oleh penyimpanan pilihan Anda, seperti SSD Lokal, Persistent Disk, dalam memori tmpfs
, atau Filestore. Performa cache Cloud Storage FUSE cocok dengan penyimpanan dasar yang digunakan oleh cache dengan overhead minimal.
Untuk mempelajari performa penyimpanan cache lebih lanjut, lihat
Praktik terbaik dan performa penyimpanan cache Cloud Storage FUSE.
Persistensi
Cache FUSE Cloud Storage tidak dipertahankan saat pelepasan dan dimulai ulang saat semua entri metadata dikeluarkan. Namun, data dalam cache file tidak dikeluarkan dan harus dihapus oleh pengguna, atau dapat digunakan kembali dalam operasi pemasangan berikutnya setelah metadata diisi lagi.
Keamanan
Saat Anda mengaktifkan penyimpanan cache, Cloud Storage FUSE akan menggunakan cache-dir
yang ditentukan yang Anda tetapkan sebagai direktori dasar untuk cache tersebut guna mempertahankan file dari bucket Cloud Storage Anda dalam format yang tidak dienkripsi. Semua pengguna atau proses yang memiliki
akses ke direktori cache ini dapat mengakses file tersebut. Sebaiknya batasi akses ke direktori ini.
Akses langsung atau multi-akses ke cache file
Menggunakan proses selain Cloud Storage FUSE untuk mengakses atau memodifikasi file dalam direktori cache dapat menyebabkan kerusakan data. Cache Cloud Storage FUSE bersifat khusus untuk setiap proses yang berjalan di Cloud Storage FUSE tanpa ada kesadaran di berbagai proses Cloud Storage FUSE yang berjalan pada mesin yang sama atau berbeda. Selanjutnya, direktori cache yang sama tidak boleh digunakan oleh proses FUSE Cloud Storage yang berbeda.
Jika beberapa proses Cloud Storage FUSE perlu dijalankan pada mesin yang sama, setiap proses FUSE Cloud Storage harus mendapatkan direktori cache khususnya sendiri, atau menggunakan salah satu metode berikut untuk memastikan data Anda tidak rusak:
Pasang 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 FUSE Cloud Storage.
Mengaktifkan caching di bucket tertentu: Anda dapat mengaktifkan caching hanya pada bucket yang ditentukan menggunakan pemasangan statis. Untuk mempelajari lebih lanjut, lihat Pemasangan statis FUSE Cloud Storage.
Hanya meng-cache folder atau direktori tertentu: daripada memasang seluruh bucket, Anda dapat menggunakan opsi
–only-dir
untuk memasang dan meng-cache folder tingkat bucket tertentu saja. Untuk mempelajari lebih lanjut, lihat Memasang direktori dalam bucket.
Ringkasan cache statistik
Cache statistik FUSE Cloud Storage adalah cache untuk metadata objek yang meningkatkan
performa untuk operasi yang khusus untuk atribut file seperti ukuran,
waktu modifikasi, atau izin. Penggunaan cache statistik meningkatkan latensi dengan menggunakan data yang di-cache untuk menjalankan operasi, bukan mengirim permintaan objek statistik ke Cloud Storage. Secara default, cache statistik diaktifkan dengan
nilai stat-cache-max-size-mb
sebesar 32 MB dan nilai ttl-secs
ditetapkan ke 60
detik. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari caching statistik lebih lanjut,
lihat Dokumentasi Semantik di GitHub.
Ringkasan jenis penyimpanan dalam cache
Cache jenis Cloud Storage FUSE adalah cache metadata yang mempercepat performa operasi metadata khusus keberadaan file atau direktori. Menggunakan jenis cache dapat mengurangi latensi dengan mengurangi jumlah permintaan yang dibuat ke Cloud Storage untuk memeriksa apakah file atau direktori ada dengan menyimpan informasi ini secara lokal. Secara default, cache jenis diaktifkan dengan
nilai type-cache-max-size-mb
sebesar 4 MB dan nilai ttl-secs
selama 60
detik secara
default. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari cache jenis lebih lanjut,
lihat Dokumentasi semantik di GitHub.
Menampilkan daftar ringkasan penyimpanan dalam cache
Cache daftar Cloud Storage FUSE adalah cache untuk respons direktori dan daftar file, atau ls
,
yang meningkatkan kecepatan operasi daftar. Pembuatan cache daftar sangat berguna untuk workload yang mengulangi listingan direktori lengkap sebagai bagian dari eksekusi, seperti operasi pelatihan AI/ML.
Cache daftar disimpan di memori dalam cache halaman, yang dikontrol oleh kernel berdasarkan ketersediaan memori, bukan cache statistik dan jenis, yang disimpan dalam memori mesin dan dikontrol oleh Cloud Storage FUSE.
Mengaktifkan penyimpanan daftar cache
Cache daftar dinonaktifkan secara default dan otomatis ditetapkan ke nilai 0
. Anda dapat mengaktifkan pembuatan cache daftar menggunakan flag CLI --kernel-list-cache-ttl-secs
atau kolom kernel-list-cache-ttl-secs
dengan salah satu nilai berikut:
Nilai positif yang merepresentasikan TTL dalam hitungan detik untuk mempertahankan respons daftar direktori dalam cache halaman kernel.
Nilai
-1
untuk mengabaikan masa berlaku entri dan menampilkan respons daftar dari cache jika tersedia.
Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan dan mengonfigurasi penyimpanan dalam cache daftar, lihat file konfigurasi FUSE Cloud Storage.
Mengonfigurasi pembatalan validasi cache
Bagian berikut menjelaskan cara mengonfigurasi pembatalan cache untuk semua jenis cache. Pembatalan validasi cache dikontrol oleh time to live (TTL), saat data yang di-cache menjadi tidak valid setelah TTL habis masa berlakunya.
Pembatalan validasi cache file, statistik, dan jenis
Kolom ttl-secs
menentukan durasi penggunaan metadata yang di-cache sejak
diambil dari Cloud Storage.
Anda dapat mengonfigurasi ttl-secs
dalam file konfigurasi FUSE Cloud Storage.
Saat Anda menentukan nilai untuk ttl-secs
yang lebih besar dari 0
, metadata
untuk cache file akan tetap valid selama jangka waktu yang Anda tentukan. Nilai
default 60
ditetapkan untuk ttl-secs
. Untuk menyimpan file dalam cache, sebaiknya
tingkatkan nilai ttl-secs
berdasarkan perkiraan waktu antar
pembacaan berulang, sekaligus menyeimbangkan kebutuhan konsistensi. Berdasarkan nilai penting dan
frekuensi perubahan data, sebaiknya tetapkan nilai ttl-secs
setinggi
yang dimungkinkan oleh workload Anda. Jika entri metadata menjadi tidak valid, pembacaan berikutnya akan dikueri dari Cloud Storage.
Selain menentukan nilai yang mewakili jumlah detik, flag
ttl-secs
juga mendukung nilai 0
dan -1
.
Nilai
ttl-secs
dari0
: saat Anda memasukkan nilai0
, flagttl-secs
memastikan bahwa file terbaru dibaca dengan melakukan panggilan Get metadata ke Cloud Storage yang memeriksa file asalnya untuk memastikan cache tersebut konsisten. Jika file dalam cache sudah yang terbaru, file akan ditayangkan langsung dari cache. Performa kurang efektif dibandingkan jika Anda menentukan nilaittl-secs
selain 0 karena panggilan harus selalu dilakukan ke Cloud Storage untuk memeriksa metadata terlebih dahulu. Jika file ada dalam cache dan tidak berubah, file akan ditayangkan dari cache secara konsisten setelah panggilan Get metadata.Nilai
ttl-secs
dari-1
: saat Anda memasukkan nilai-1
, file selalu dibaca dari cache, jika tersedia, tanpa memeriksa konsistensi. Inferensi file tanpa memeriksa konsistensi dapat mengirimkan data yang tidak konsisten, dan hanya boleh digunakan sementara untuk workload 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
Saat Anda menentukan nilai untuk kernel-list-cache-ttl-secs
yang lebih besar dari
0
, respons daftar direktori akan disimpan dalam cache halaman
kernel dan tetap valid selama jumlah waktu yang Anda tentukan. Secara default, cache daftar dinonaktifkan dan disetel ke nilai 0
. Saat Anda menentukan nilai -1
, Cloud Storage FUSE akan menonaktifkan akhir masa berlaku cache daftar dan menampilkan respons daftar dari cache saat tersedia.
Membaca jalur untuk data yang di-cache
Cache FUSE Cloud Storage mempercepat pembacaan berulang setelah diserap ke cache. Pembacaan pertama dan cache tidak ditemukan langsung masuk ke Cloud Storage dan tunduk pada latensi jaringan Cloud Storage normal.
Pertimbangan
Menggunakan Cloud Storage FUSE dengan caching file, caching statistik, caching jenis, atau cache daftar diaktifkan dapat meningkatkan performa, tetapi mengurangi konsistensi. Untuk mempelajari lebih lanjut, lihat Dokumentasi Semantik di GitHub.
Jika entri cache file belum habis masa berlakunya berdasarkan TTL-nya dan file ada dalam cache, seluruh operasi akan disajikan dari cache klien lokal tanpa perlu mengeluarkan permintaan 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 tersebut akan diambil dari Cloud Storage. Kedua operasi ini tunduk pada latensi jaringan. Jika entri metadata tidak valid, tetapi file berada di cache, dan pembuatan objeknya tidak berubah, file akan ditayangkan dari cache hanya 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 konsistensinya dipastikan setelah dibaca oleh klien yang sama. Namun, jika klien yang berbeda mengakses file yang sama atau metadatanya, dan entrinya di-cache, versi file atau metadata yang di-cache akan dibaca, bukan versi yang diupdate, sampai file tersebut dibatalkan validasinya oleh setelan TTL klien tersebut.
Langkah selanjutnya
Pelajari cara menggunakan dan mengonfigurasi penyimpanan file dalam cache.
Pelajari praktik terbaik dan performa penyimpanan cache Cloud Storage FUSE.