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}, bahkan jika Anda hanya membaca dari {i>subset<i} rentang kecil. Ini memungkinkan pembacaan acak atau parsial 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 peristiwa yang paling lama 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.

Pastikan seluruh set data Anda sesuai dengan kapasitas cache untuk mendapatkan hasil terbaik kinerja situs dan untuk menghindari {i>cache thrashing<i}. Juga, pertimbangkan kapasitas maksimum dan performa yang dapat disediakan oleh media cache Anda. Jika Anda membuka instance performa maksimum cache, batas kapasitas, atau keduanya. Hal ini bermanfaat bagi membaca langsung dari Cloud Storage yang memiliki batas yang jauh lebih tinggi daripada FUSE Cloud Storage.

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. Untuk mempelajari lebih lanjut tentang cache statistik, lihat Dokumentasi semantik di GitHub.

Cache statistik diaktifkan secara default dan dapat dikonfigurasi menggunakan File konfigurasi FUSE Cloud Storage. Ukuran cache maksimum adalah 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 cache statistik, sebaiknya gunakan nilai default 32 untuk stat-cache-max-size-mb jika beban kerja Anda melibatkan hingga 20.000 file. Jika beban kerja Anda lebih dari 20.000 file, tingkatkan stat-cache-max-size-mb bernilai 10 untuk setiap 6.000 file tambahan, sekitar 1.500 byte per file.

stat-cache-max-size-mb adalah batas level pemasangan, dan penggunaan memori sebenarnya mungkin lebih rendah dari nilai yang Anda tentukan. Atau, Anda bisa mengatur stat-cache-max-size-mb hingga -1 agar cache statistik dapat digunakan sebanyak mungkin memori sesuai kebutuhan.

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 file atau direktori sudah ada dengan informasi lokal secara lokal. Untuk mempelajari lebih lanjut tentang jenis {i>caching<i}, lihat Dokumentasi Semantik di GitHub.

Jenis cache diaktifkan secara default dan dapat dikonfigurasi menggunakan File konfigurasi FUSE Cloud Storage. Ukuran cache maksimum adalah 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 jenis cache, sebaiknya gunakan nilai default 4 untuk type-cache-max-size-mb jika jumlah file maksimum dalam satu file dari bucket yang Anda pasang berisi 20.000 file atau kurang. Jika jumlah file maksimum dalam satu direktori yang Anda pasang berisi lebih dari 20.000 file, tingkatkan nilai type-cache-max-size-mb sebesar 1 untuk setiap 5.000 file, sekitar 200 byte per file.

type-cache-max-size-mb adalah batas level pemasangan, dan penggunaan memori sebenarnya mungkin lebih rendah dari nilai yang ditentukan. Atau, Anda dapat menyetel Nilai type-cache-max-size-mb ke -1 agar jenis cache dapat menggunakan sebanyak mungkin penggunaan memori sesuai kebutuhan.

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 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.

Sebelum menjalankan beban kerja Anda, sebaiknya Anda terlebih dahulu mencantumkan secara rekursif di bucket terpasang untuk mengisi statistik dan mengetik cache terlebih dahulu dan meningkatkan performa saat pertama kali dijalankan dengan metode batch yang lebih cepat:

ls -R MOUNT_POINT > /dev/null

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