Ringkasan penyimpanan dalam cache di FUSE Cloud Storage

Cloud Storage FUSE menyediakan empat jenis caching opsional untuk membantu meningkatkan kinerja pengambilan data:

Ringkasan penyimpanan file dalam cache

Cache file Cloud Storage FUSE adalah cache baca berbasis klien yang berfungsi pengulangan membaca dari penyimpanan {i> cache<i} yang lebih cepat pilihan Anda.

Manfaat penyimpanan file dalam cache

  • Peningkatan performa: penyimpanan file dalam cache meningkatkan latensi dan throughput sebesar yang menyajikan operasi baca langsung dari media {i>cache<i}. Operasi I/O yang kecil dan acak dapat menjadi jauh lebih cepat bila disajikan dari cache.

  • Gunakan kapasitas yang ada: penyimpanan file dalam cache dapat menggunakan resource yang disediakan kapasitas mesin untuk direktori cache tanpa menimbulkan biaya penyimpanan tambahan. Ini termasuk SSD Lokal yang disertakan 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 Biaya jaringan atau operasi Cloud Storage.

  • Peningkatan total biaya kepemilikan untuk pelatihan AI dan ML: penyimpanan file dalam cache meningkatkan penggunaan Cloud GPU dan Cloud TPU dengan memuat data lebih cepat yang mengurangi waktu pelatihan dan memberikan rasio harga-performa untuk workload pelatihan AI dan ML.

Mengaktifkan dan mengonfigurasi cache file

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

  • max-size-mb: mengontrol kapasitas maksimum di direktori cache Anda yang dapat ditempati oleh data {i>cache<i}. Secara {i>default<i}, isian max-size-mb diatur agar data yang di-cache akan bertambah sampai memenuhi semua kapasitas yang tersedia di dalam direktori cache.

  • cache-dir: menentukan direktori untuk menyimpan data cache file. Perlu diketahui bahwa menetapkan direktori {i>cache<i} adalah prasyarat untuk mengaktifkan {i>cache file<i}.

  • ttl-secs: menentukan kapan data yang di-cache menjadi tidak berlaku dan harus dimuat ulang dari Cloud Storage. Secara default, kolom ttl-secs disetel ke akan berakhir dan dimuat ulang dari Cloud Storage setelah 60 detik tidak aktif. Sebaiknya tingkatkan nilai ini.

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

  • enable-parallel-downloads: mempercepat performa baca untuk file berukuran lebih dari 1 GB, termasuk pembacaan pertama kali, dengan menggunakan beberapa pekerja untuk mengunduh file secara paralel menggunakan cache file sebagai buffer pengambilan data. Sebaiknya aktifkan mode paralel {i>download<i} untuk melayani dan memeriksa operasi pemulihan. Untuk informasi selengkapnya cara mengaktifkan dan mengonfigurasi download paralel, lihat Mengonfigurasi download paralel.

Acak & Pembacaan Sebagian

Jika operasi baca file pertama dimulai dari awal file, di offset 0, cache file Cloud Storage FUSE menyerap dan memuat seluruh file ke dalam {i>cache<i}, meskipun Anda hanya membaca dari {i>subset<i} rentang kecil. Ini memungkinkan pembacaan acak atau sebagian berikutnya dari objek yang sama disajikan langsung dari cache.

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

Penggusuran

Penghapusan metadata dan data yang di-cache didasarkan pada perilaku yang paling jarang digunakan (LRU) yang dimulai setelah batas ruang dikonfigurasi sesuai Batas max-size-mb tercapai. Jika entri kedaluwarsa berdasarkan TTL-nya, Panggilan minta metadata pertama kali dilakukan ke Cloud Storage dan tunduk kepada jaringan dan latensi rendah. Karena data dan {i>metadata<i} dikelola secara terpisah, Anda mungkin mengalami satu entitas dikeluarkan atau menjadi tidak valid dan tidak menjadi entitas yang lain.

Performa

Penyimpanan cache Cloud Storage FUSE berfungsi dengan direktori yang ditentukan pengguna dan didukung dengan pilihan penyimpanan Anda, seperti SSD Lokal, Persistent Disk, dalam memori tmpfs, atau Filestore. Cache FUSE Cloud Storage performa sesuai dengan penyimpanan dasar yang digunakan oleh cache dengan overhead minimal. Untuk mempelajari performa penyimpanan dalam 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. Untuk file sementara entri metadata yang diperlukan untuk menyalurkan file dari {i>cache<i} disimpan saat dikeluarkan dan dimulai ulang, data dalam cache file mungkin masih ada dalam direktori {i>file<i}. Anda harus menghapus data dalam direktori {i>cache file<i} setelah dilepas atau dimulai ulang.

Keamanan

Saat Anda mengaktifkan penyimpanan cache, Cloud Storage FUSE akan menggunakan direktori cache yang Anda tentukan menggunakan kolom cache-dir sebagai direktori pokok cache untuk mempertahankan file dari bucket Cloud Storage dalam format tidak terenkripsi. Apa saja pengguna atau proses yang memiliki akses ke direktori {i>cache<i} ini dapat mengakses file ini. Sebaiknya batasi akses ke direktori ini.

Akses langsung atau multi-akses ke cache file

Menggunakan proses selain Cloud Storage FUSE untuk mengakses atau mengubah file di dalam direktori {i>cache<i} dapat menyebabkan kerusakan data. Cache FUSE Cloud Storage bersifat spesifik ke setiap proses yang berjalan di FUSE Cloud Storage tanpa awareness di berbagai Proses Cloud Storage FUSE yang berjalan di mesin yang sama atau berbeda. Oleh karena itu, sebaiknya jangan gunakan direktori cache yang sama untuk FUSE Cloud Storage yang berbeda proses-proses tersebut.

Jika beberapa proses Cloud Storage FUSE perlu dijalankan di mesin yang sama, Proses FUSE Cloud Storage harus mendapatkan direktori cache khusus 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 selengkapnya, lihat Pemasangan dinamis FUSE Cloud Storage.

  • Aktifkan caching di bucket tertentu: aktifkan penyimpanan ke cache hanya pada bucket menggunakan pemasangan statis. Untuk mempelajari lebih lanjut, lihat Pemasangan statis FUSE Cloud Storage.

  • Hanya cache folder atau direktori tertentu: pasang dan cache hanya folder level bucket spesifik, dan bukan memasang seluruh bucket. Untuk mempelajari selengkapnya, lihat Memasang direktori dalam bucket.

Ringkasan cache statistik

Cache statistik Cloud Storage FUSE adalah cache untuk metadata objek yang meningkatkan performa untuk operasi yang spesifik untuk atribut file seperti ukuran, waktu modifikasi, atau izin. Menggunakan cache statistik meningkatkan latensi dengan menggunakan data yang di-cache untuk melakukan operasi alih-alih mengirim permintaan objek statistik ke yang sesuai di 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 lebih lanjut tentang cache statistik, lihat Dokumentasi Semantik di GitHub.

Ringkasan jenis penyimpanan dalam cache

Cache jenis Cloud Storage FUSE adalah cache metadata yang mempercepat performa untuk operasi {i>metadata<i} khusus yang berkaitan dengan keberadaan file atau direktori. Jenis penggunaan meningkatkan latensi dengan mengurangi jumlah permintaan yang dibuat Cloud Storage untuk memeriksa apakah ada file atau direktori dengan cara menyimpan informasi lokal secara lokal. Secara default, jenis cache diaktifkan dengan Nilai type-cache-max-size-mb sebesar 4 MB dan nilai ttl-secs sebesar 60 detik dengan secara default. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari lebih lanjut tentang jenis {i>caching<i}, lihat Dokumentasi Semantik di GitHub.

Menampilkan daftar ringkasan penyimpanan dalam cache

Cache daftar Cloud Storage FUSE ditujukan untuk 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 pelatihan AI/ML yang dijalankan.

Cache daftar disimpan di memori di cache halaman, yang dikontrol oleh {i>kernel<i} berdasarkan ketersediaan memori, berlawanan dengan {i>cache<i} statistik dan jenis, yang disimpan di memori mesin Anda dan dikontrol oleh Cloud Storage FUSE.

Aktifkan penyimpanan daftar ke cache

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

  • Nilai positif yang mewakili waktu aktif (TTL) dalam detik yang harus disimpan respons daftar direktori dalam cache halaman {i>kernel<i}.

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

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

Mengonfigurasi pembatalan validasi cache

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

Pembatalan validasi cache file, statistik, dan jenis

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

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

Kolom ttl-secs ditetapkan ke 60 secara default. Saat Anda menentukan nilai untuk ttl-secs yang lebih besar dari 0, metadata agar cache file tetap valid selama jangka waktu yang Anda tentukan. Untuk menyimpan file dalam cache, sebaiknya tingkatkan nilai ttl-secs berdasarkan waktu yang diharapkan di antara pembacaan berulang sambil menyeimbangkan kebutuhan konsistensi. Berdasarkan kepentingan dan frekuensi perubahan data, sebaiknya menetapkan nilai ttl-secs setinggi yang dimungkinkan oleh workload Anda. Ketika seorang entri metadata menjadi tidak valid, pembacaan berikutnya dikueri dari yang sesuai di Cloud Storage.

Selain menerima nilai yang mewakili TTL tertentu dalam sebelum metadata yang di-cache kedaluwarsa dan perlu disegarkan, Anda dapat menggunakan nilai berikut untuk menentukan cara file dibaca:

  • Nilai ttl-secs dari 0: memastikan file dengan data terbaru dibaca dengan melakukan panggilan metadata GET ke Cloud Storage yang memeriksa file tempatnya menyajikannya untuk memastikan {i>cache<i} konsisten. Jika file dalam cache sudah yang terbaru, file ini akan disajikan langsung dari cache. Menetapkan nilai selain 0 dapat menyebabkan penurunan performa karena panggilan harus selalu dilakukan ke Cloud Storage untuk memeriksa metadata terlebih dahulu. Jika file ada di dalam {i>cache<i} dan tidak berubah, file akan disajikan dari cache dengan konsistensi setelah panggilan metadata GET.

  • Nilai ttl-secs dari -1: memastikan file selalu dibaca dari cache jika tersedia, tanpa memeriksa konsistensinya. Menyajikan file tanpa memeriksa konsistensi dapat menghasilkan data yang tidak konsisten, dan seharusnya sementara digunakan untuk beban kerja yang berjalan di pekerjaan dengan data yang tidak berubah. Sebagai misalnya, menggunakan nilai -1 berguna untuk pelatihan machine learning, jika 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 atribut Kolom kernel-list-cache-ttl-secs. Respons daftar direktori disimpan di cache halaman kernel dan tetap valid selama jumlah waktu yang Anda tentukan. Secara default, cache daftar dinonaktifkan dan disetel ke nilai 0. Jika Anda menetapkan nilai -1, Cloud Storage FUSE menonaktifkan akhir masa berlaku cache daftar dan mengembalikan respons daftar dari cache saat tersedia.

Membaca jalur untuk data yang di-cache

Cache FUSE Cloud Storage mempercepat pembacaan berulang setelah yang diserap ke cache. Pembacaan pertama kali dan cache tidak ditemukan langsung ke Cloud Storage dan tunduk kepada persyaratan Cloud Storage normal. dan latensi jaringan.

Pertimbangan

  • Mengaktifkan penyimpanan file ke cache, cache statistik, cache jenis, atau penyimpanan daftar ke cache 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 memasang bucket sebagai hanya-baca. Untuk mempelajari lebih lanjut perilaku penyimpanan dalam cache, lihat Dokumentasi semantik Cloud Storage FUSE di GitHub.

  • Jika entri cache file belum kedaluwarsa berdasarkan TTL-nya dan file telah dalam cache, seluruh operasi disajikan dari cache klien lokal tanpa mengeluarkan permintaan apa pun ke Cloud Storage.

  • Jika entri cache file telah kedaluwarsa berdasarkan TTL-nya, tag Get panggilan pertama dilakukan ke Cloud Storage, dan jika file tidak ada di cache, file tersebut akan diambil dari Cloud Storage. Kedua operasi tunduk kepada dan latensi jaringan. Jika entri metadata tidak valid, tetapi file ada di dalam cache, dan pembuatan objeknya tidak berubah, file itu disalurkan dari cache hanya setelah panggilan Get metadata dilakukan untuk memeriksa apakah bahwa data tersebut valid.

  • Jika klien Cloud Storage FUSE memodifikasi file yang di-cache atau metadata, file akan langsung dibatalkan validasinya dan konsistensinya dipastikan dalam format berikut ini dibaca oleh klien yang sama. Namun, jika klien yang berbeda mengakses file yang sama atau metadatanya, dan entrinya di-cache, kemudian versi yang di-cache dari file atau metadata dibaca dan bukan versi yang diperbarui sampai file menjadi tidak valid oleh setelan TTL klien tersebut.

Langkah selanjutnya