Halaman ini memberikan panduan tentang cara meningkatkan performa Cloud Storage FUSE menggunakan fitur dan konfigurasi utama Cloud Storage FUSE untuk mencapai throughput maksimum dan performa optimal, terutama untuk workload kecerdasan buatan dan machine learning (AI/ML) seperti pelatihan, penayangan, dan pembuatan titik pemeriksaan.
Pertimbangan
Sebelum Anda menerapkan konfigurasi yang kami rekomendasikan di halaman ini, pertimbangkan hal-hal berikut:
Anda dapat menerapkan konfigurasi yang direkomendasikan di halaman ini menggunakan tiga metode:
Khusus untuk Google Kubernetes Engine: contoh file YAML Google Kubernetes Engine
Pastikan Anda menjalankan Cloud Storage FUSE versi terbaru. Konfigurasi yang direkomendasikan hanya boleh diterapkan ke Cloud Storage FUSE versi 3.0 atau yang lebih baru dan driver CSI Cloud Storage FUSE untuk Google Kubernetes Engine yang berjalan di cluster GKE versi 1.32.2-gke.1297001 atau yang lebih baru.
Konfigurasi yang direkomendasikan menyimpan metadata Cloud Storage dalam cache selama durasi tugas dan tidak diperiksa setelah pemasangan awal sistem file. Oleh karena itu, sebaiknya sistem file bersifat hanya baca atau semantik sistem file adalah aplikasi tulis-ke-baru, yang berarti aplikasi selalu menulis ke file baru, untuk performa yang optimal. Workload AI/ML berikut adalah tulis-ke-baru:
Checkpoint
Pelatihan
Aktif
Caching
jax.jit()
Konfigurasi yang direkomendasikan di halaman ini telah divalidasi untuk jenis mesin besar Cloud GPU dan Cloud TPU dalam skala besar yang memiliki memori dalam jumlah besar dan antarmuka jaringan dengan bandwidth tinggi. Jenis mesin GPU Cloud dan TPU Cloud dapat berbeda dalam hal jumlah resource yang tersedia seperti CPU, memori, dan penyimpanan lokal dalam konfigurasi node host-nya. Hal ini dapat secara langsung memengaruhi performa untuk konfigurasi seperti berikut:
A3 Mega - Memori 1,8 TiB, dengan LSSD 6 TiB
Cloud TPU v5e - Memori 188 GiB, tanpa LSSD
Cloud TPU v5p - Memori 448 GiB, tanpa LSSD
Cloud TPU v6 (Trillium) - Memori 1,5 TiB, tanpa LSSD
Menggunakan bucket dengan namespace hierarkis yang diaktifkan
Selalu gunakan bucket dengan namespace hierarkis yang diaktifkan. Namespace hierarkis mengatur data Anda ke dalam struktur sistem file hierarkis, yang membuat operasi dalam bucket lebih efisien, sehingga menghasilkan waktu respons yang lebih cepat dan lebih sedikit panggilan daftar secara keseluruhan untuk setiap operasi.
Manfaat ruang nama hierarkis meliputi:
Bucket dengan namespace hierarkis memberikan kueri per detik (QPS) awal hingga delapan kali lebih tinggi dibandingkan dengan bucket datar. Namespace hierarkis mendukung 40.000 permintaan baca objek awal per detik dan 8.000 permintaan tulis objek awal, yang jauh lebih tinggi daripada bucket datar FUSE Cloud Storage biasa, yang hanya menawarkan 5.000 permintaan baca objek per detik pada awalnya dan 1.000 permintaan tulis objek awal.
Namespace hierarkis menyediakan penggantian nama direktori atomik, yang diperlukan untuk pembuatan titik pemeriksaan dengan Cloud Storage FUSE guna memastikan atomisitas. Penggunaan bucket dengan namespace hierarkis yang diaktifkan sangat bermanfaat saat membuat titik pemeriksaan dalam skala besar karena framework ML menggunakan penggantian nama direktori untuk menyelesaikan titik pemeriksaan, yang merupakan perintah atomik yang cepat, dan hanya didukung di bucket dengan namespace hierarkis yang diaktifkan. Jika Anda memilih untuk tidak menggunakan bucket dengan ruang nama hierarkis yang diaktifkan, lihat Meningkatkan batas penggantian nama untuk bucket non-HNS.
Untuk mempelajari cara membuat bucket dengan namespace hierarkis diaktifkan, lihat Membuat bucket dengan namespace hierarkis diaktifkan. Untuk mempelajari cara memasang bucket yang mendukung namespace hierarkis, lihat Memasang bucket dengan namespace hierarkis yang diaktifkan. Namespace hierarkis didukung di Google Kubernetes Engine versi 1.31.1-gke.2008000 atau yang lebih baru.
Melakukan pemasangan khusus direktori
Jika ingin mengakses direktori tertentu dalam bucket, Anda dapat memasang hanya direktori tertentu menggunakan opsi pemasangan only-dir
, bukan memasang seluruh bucket. Melakukan pemasangan khusus direktori akan mempercepat panggilan daftar dan mengurangi jumlah keseluruhan panggilan daftar dan stat dengan membatasi jumlah direktori yang harus dilalui saat menyelesaikan nama file, karena panggilan LookUpInode
dan permintaan akses bucket atau direktori secara otomatis menghasilkan panggilan daftar dan stat untuk setiap file atau direktori dalam jalur.
Untuk memasang direktori tertentu, gunakan salah satu metode berikut:
Google Kubernetes Engine
Gunakan konfigurasi pemasangan berikut dengan driver CSI Cloud Storage FUSE untuk Google Kubernetes Engine:
volumeHandle: BUCKET_NAME
- only-dir:DIRECTORY_NAME
Dengan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pasangi direktori.DIRECTORY_NAME
adalah nama direktori yang ingin Anda pasang.
Compute Engine
Jalankan perintah gcsfuse --only-dir
untuk memasang direktori tertentu di virtual machine Compute Engine:
gcsfuse --only-dir DIRECTORY_NAME BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket yang ingin Anda pasangi direktori.DIRECTORY_NAME
adalah nama direktori yang ingin Anda pasang.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Untuk mengetahui informasi selengkapnya tentang cara melakukan pemasangan direktori, lihat Memasang direktori dalam bucket.
Meningkatkan nilai cache metadata
Untuk meningkatkan performa pembacaan berulang, Anda dapat mengonfigurasi Cloud Storage FUSE untuk menyimpan dalam cache sejumlah besar metadata dan melewati masa berlaku metadata, sehingga menghindari permintaan metadata berulang ke Cloud Storage dan meningkatkan performa secara signifikan.
Meningkatkan nilai cache metadata bermanfaat untuk workload dengan pembacaan berulang untuk menghindari panggilan Cloud Storage berulang dan untuk volume hanya baca yang dapat ditetapkan TTL tak terbatas.
Pertimbangkan hal berikut sebelum Anda meningkatkan nilai cache metadata:
Time to live (TTL) tak terbatas hanya boleh ditetapkan untuk volume yang bersifat hanya baca atau hanya tulis ke yang baru.
Cache metadata hanya boleh diaktifkan agar ukurannya bertambah secara signifikan di node dengan konfigurasi memori besar karena cache ini menyimpan semua metadata untuk titik pemasangan yang ditentukan di setiap node dan menghilangkan kebutuhan akan akses tambahan ke Cloud Storage.
Konfigurasi di bagian ini menyimpan dalam cache semua metadata yang diakses dengan TTL tak terbatas, yang dapat memengaruhi jaminan konsistensi saat perubahan dilakukan pada bucket Cloud Storage yang sama oleh klien lain, misalnya, penimpaan pada file atau penghapusan file.
Untuk memverifikasi bahwa konsumsi memori tidak terpengaruh, validasi bahwa jumlah memori yang digunakan oleh cache metadata dapat diterima oleh Anda, yang dapat bertambah hingga mencapai gigabyte dan bergantung pada jumlah file dalam bucket yang di-mount dan jumlah titik pemasangan yang digunakan. Misalnya, metadata setiap file menggunakan memori sekitar 1,5 KiB, dan secara relatif, metadata satu juta file menggunakan memori sekitar 1,5 GiB. Untuk mengetahui informasi selengkapnya, lihat Ringkasan penyimpanan ke dalam cache.
Gunakan petunjuk berikut untuk mengonfigurasi Cloud Storage FUSE agar menyimpan cache metadata dalam jumlah besar dan melewati masa berlaku metadata:
Opsi CLI
gcsfuse --metadata-cache-ttl-secs=-1 \ --stat-cache-max-size-mb=-1 \ --type-cache-max-size-mb=-1 \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
File konfigurasi
metadata-cache: stat-cache-max-size-mb: -1 ttl-secs: -1 type-cache-max-size-mb: -1
Google Kubernetes Engine
mountOptions: - metadata-cache:ttl-secs:-1 - metadata-cache:stat-cache-max-size-mb:-1 - metadata-cache:type-cache-max-size-mb:-1
Compute Engine
gcsfuse --metadata-cache-ttl-secs=-1 \ --stat-cache-max-size-mb=-1 \ --type-cache-max-size-mb=-1 \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Mengisi cache metadata terlebih dahulu
Sebelum menjalankan beban kerja, sebaiknya isi cache metadata terlebih dahulu, yang akan meningkatkan performa secara signifikan dan mengurangi jumlah panggilan metadata ke Cloud Storage secara substansial, terutama jika opsi konfigurasi implicit-dirs
digunakan. Driver CSI Cloud Storage FUSE untuk GKE menyediakan API yang menangani pengisian awal cache metadata, lihat Menggunakan pengambilan data metadata untuk mengisi awal cache metadata.
Untuk mengisi cache metadata terlebih dahulu, gunakan salah satu metode berikut:
Google Kubernetes Engine
Tetapkan flag atribut volume CSI gcsfuseMetadataPrefetchOnMount
ke true
:
Di Google Kubernetes Engine versi 1.32.1-gke.1357001 atau yang lebih baru, Anda dapat mengaktifkan pengambilan data metadata untuk volume tertentu menggunakan opsi konfigurasi gcsfuseMetadataPrefetchOnMount
di kolom volumeAttributes
definisi PersistentVolume
Anda.
Metode initContainer
tidak diperlukan saat Anda menggunakan opsi konfigurasi gcsfuseMetadataPrefetchOnMount
.
apiVersion: v1 kind: PersistentVolume metadata: name: training-bucket-pv spec: ... csi: volumeHandle: BUCKET_NAME volumeAttributes: ... gcsfuseMetadataPrefetchOnMount: "true"
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
Resource container init dapat bervariasi bergantung pada konten bucket dan tata letak hierarkis, jadi pertimbangkan untuk menyetel resource sidecar pengambilan data metadata kustom untuk batas yang lebih tinggi.
Linux
Jalankan perintah ls -R
secara manual di titik pemasangan Cloud Storage FUSE untuk mencantumkan semua file secara rekursif dan mengisi cache metadata terlebih dahulu:
ls -R MOUNT_POINT > /dev/null
Dengan:
MOUNT_POINT
: jalur ke titik pemasangan Cloud Storage FUSE
Anda.
Compute Engine
Jalankan perintah ls -R
secara manual di titik pemasangan Cloud Storage FUSE untuk mencantumkan semua file secara rekursif dan mengisi cache metadata terlebih dahulu:
ls -R MOUNT_POINT > /dev/null
Dengan:
MOUNT_POINT
: jalur ke titik pemasangan Cloud Storage FUSE
Anda.
Mengaktifkan caching file dan download paralel
Penyimpanan cache file memungkinkan Anda menyimpan data file yang sering diakses secara lokal di komputer, sehingga mempercepat pembacaan berulang dan mengurangi biaya Cloud Storage. Saat Anda mengaktifkan penayangan file, download paralel juga akan otomatis diaktifkan. Download paralel menggunakan beberapa pekerja untuk mendownload file secara paralel menggunakan direktori cache file sebagai buffer pengambilan data, sehingga menghasilkan waktu pemuatan model sembilan kali lebih cepat.
Untuk mempelajari cara mengaktifkan dan mengonfigurasi caching file dan download paralel, lihat Mengaktifkan dan mengonfigurasi perilaku caching file. Untuk menggunakan contoh konfigurasi, lihat Contoh konfigurasi untuk mengaktifkan penyimpanan file dalam cache dan download paralel.
Pertimbangan Cloud GPU dan Cloud TPU untuk menggunakan penyiapan cache file dan download paralel
Cache file dapat dihosting di SSD Lokal, RAM, Persistent Disk, atau
Google Cloud Hyperdisk dengan panduan berikut. Dalam semua kasus, data, atau file besar individual, harus sesuai dengan kapasitas yang tersedia di direktori cache file yang dikontrol menggunakan konfigurasi max-size-mb
.
Pertimbangan GPU cloud
SSD Lokal ideal untuk data pelatihan dan download titik pemeriksaan. Jenis mesin Cloud GPU mencakup kapasitas SSD yang dapat digunakan, seperti jenis mesin A4 yang mencakup SSD 12 TiB.
Disk RAM memberikan performa terbaik untuk memuat bobot model karena ukurannya yang kecil dibandingkan dengan jumlah RAM yang tidak digunakan di sistem.
Persistent Disk atau Google Cloud Hyperdisk dapat digunakan sebagai cache.
Pertimbangan Cloud TPU
Cloud TPU tidak mendukung SSD Lokal. Jika Anda menggunakan caching file di Cloud TPU tanpa modifikasi, lokasi default yang digunakan adalah volume booting, yang tidak direkomendasikan dan menghasilkan performa yang buruk.
Daripada volume booting, sebaiknya gunakan disk RAM, yang lebih disukai karena performanya dan tanpa biaya inkremental. Namun, disk RAM sering kali dibatasi ukurannya dan paling berguna untuk melayani bobot model atau mendownload checkpoint, bergantung pada ukuran checkpoint dan RAM yang tersedia. Selain itu, sebaiknya gunakan Persistent Disk dan Hyperdisk Google Cloud untuk tujuan caching.
Contoh konfigurasi untuk mengaktifkan caching file dan download paralel
Secara default, cache file menggunakan SSD Lokal jika
mode ephemeral-storage-local-ssd
diaktifkan untuk node Google Kubernetes Engine.
Jika tidak ada SSD Lokal yang tersedia, misalnya, di mesin Cloud TPU, cache file menggunakan disk booting node Google Kubernetes Engine, yang tidak direkomendasikan.
Dalam hal ini, Anda dapat menggunakan disk RAM sebagai direktori cache, tetapi pertimbangkan jumlah RAM yang tersedia untuk penyiapan cache file dibandingkan dengan yang dibutuhkan oleh pod.
Opsi CLI
gcsfuse --file-cache-max-size-mb: -1 \ --file-cache-cache-file-for-range-read: true \ --file-cache-enable-parallel-downloads: true \ BUCKET_NAME
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
File konfigurasi
file-cache: max-size-mb: -1 cache-file-for-range-read: true enable-parallel-downloads: true
Cloud GPU
mountOptions: - file-cache:max-size-mb:-1 - file-cache:cache-file-for-range-read:true - file-cache:enable-parallel-downloads:true # RAM disk file cache if LSSD not available. Uncomment to use # volumes: # - name: gke-gcsfuse-cache # emptyDir: # medium: Memory
Cloud TPU
mountOptions: - file-cache:max-size-mb:-1 - file-cache:cache-file-for-range-read:true - file-cache:enable-parallel-downloads:true volumes: - name: gke-gcsfuse-cache emptyDir: medium: Memory
Compute Engine
gcsfuse --file-cache-max-size-mb: -1 \ --file-cache-cache-file-for-range-read: true \ --file-cache-enable-parallel-downloads: true \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Menonaktifkan entri cache statistik negatif
Secara default, Cloud Storage FUSE menyimpan cache entri statistik negatif, yang berarti entri untuk
file yang tidak ada, dengan TTL lima detik. Dalam
beban kerja yang sering membuat atau menghapus file, seperti pembuatan
titik pemeriksaan terdistribusi, entri yang di-cache ini dapat menjadi usang dengan cepat, yang menyebabkan
masalah performa. Untuk menghindarinya, sebaiknya nonaktifkan cache statistik negatif untuk beban kerja pelatihan, penayangan, dan pembuatan titik pemeriksaan menggunakan opsi konfigurasi negative-ttl-secs
.
Gunakan petunjuk berikut untuk menonaktifkan cache statistik negatif:
Opsi CLI
gcsfuse --metadata-cache-negative-ttl-secs: 0 \ BUCKET_NAME
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
File konfigurasi
metadata-cache: negative-ttl-secs: 0
Google Kubernetes Engine
mountOptions: - metadata-cache:negative-ttl-secs:0
Compute Engine
gcsfuse --metadata-cache-negative-ttl-secs: 0 \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Mengaktifkan penulisan streaming
Penulisan streaming mengupload data langsung ke Cloud Storage saat data ditulis, yang mengurangi latensi dan penggunaan ruang disk. Hal ini sangat bermanfaat untuk penulisan berurutan yang besar, seperti titik pemeriksaan. Penulisan streaming diaktifkan secara default di Cloud Storage FUSE versi 3.0 dan yang lebih baru.
Jika penulisan streaming tidak diaktifkan secara default, gunakan petunjuk berikut untuk mengaktifkannya. Mengaktifkan penulisan streaming memerlukan Cloud Storage FUSE versi 3.0 yang tersedia di Google Kubernetes Engine versi 1.32.1-gke.1729000 atau yang lebih baru.
Opsi CLI
gcsfuse --enable-streaming-writes: true \ BUCKET_NAME
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
File konfigurasi
write: enable-streaming-writes: true
Google Kubernetes Engine
mountOptions: - write:enable-streaming-writes:true
Compute Engine
gcsfuse --enable-streaming-writes: true \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Meningkatkan ukuran baca-depan kernel
Untuk beban kerja yang terutama melibatkan pembacaan berurutan file besar seperti
penyajian dan pemulihan checkpoint, meningkatkan ukuran baca-tunggu dapat
meningkatkan performa secara signifikan. Hal ini dapat dilakukan menggunakan
parameter kernel Linux read_ahead_kb
di komputer lokal Anda. Sebaiknya
Anda meningkatkan parameter kernel read_ahead_kb
menjadi 1 MB, bukan
menggunakan jumlah default 128 KB yang ditetapkan di sebagian besar distribusi Linux. Untuk instance Compute Engine, izin sudo
atau root
diperlukan agar parameter kernel berhasil ditingkatkan.
Untuk meningkatkan parameter kernel read_ahead_kb
menjadi 1 MB untuk direktori yang di-mount Cloud Storage FUSE tertentu, gunakan petunjuk berikut. Bucket Anda harus di-mount ke Cloud Storage FUSE sebelum Anda menjalankan perintah, jika tidak, parameter kernel tidak akan bertambah.
Google Kubernetes Engine
mountOptions:
- read_ahead_kb=1024
Compute Engine
export MOUNT_POINT=/path/to/mount/point echo 1024 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb
Dengan:
MOUNT_POINT
: jalur ke titik pemasangan Cloud Storage FUSE
Anda.
Nonaktifkan Security Token Service untuk menghindari pemeriksaan yang berlebihan
Driver CSI Cloud Storage FUSE untuk Google Kubernetes Engine memiliki pemeriksaan akses untuk memastikan pemulihan pod karena kesalahan konfigurasi binding Workload Identity oleh pengguna antara bucket dan akun layanan GKE, yang dapat mencapai kuota API Security Token Service default dalam skala besar. Fitur ini dapat dinonaktifkan dengan menetapkan atribut volume skipCSIBucketAccessCheck
driver CSI Volume Persisten. Sebaiknya pastikan akun layanan GKE memiliki akses yang tepat ke bucket Cloud Storage target untuk menghindari kegagalan pemasangan pod.
Selain itu, kuota Security Token Service harus ditingkatkan di luar nilai default
6000
jika cluster Google Kubernetes Engine terdiri dari lebih dari 6.000 node,
yang dapat menyebabkan error 429
jika tidak ditingkatkan dalam deployment skala besar.
Kuota Security Token Service harus ditingkatkan melalui
halaman Kuota dan batas. Sebaiknya Anda mempertahankan kuota
yang sama dengan jumlah pemasangan, misalnya, jika ada 10.000 pemasangan di
cluster, kuota harus ditingkatkan menjadi 10000
.
Untuk menyetel atribut volume skipCSIBucketAccessCheck
, lihat contoh konfigurasi berikut:
volumeAttributes: - skipCSIBucketAccessCheck: "true"
Pertimbangan performa lainnya
Selain pengoptimalan utama yang dibahas, beberapa faktor lain dapat memengaruhi performa keseluruhan Cloud Storage FUSE secara signifikan. Bagian berikut menjelaskan pertimbangan performa tambahan yang sebaiknya Anda pertimbangkan saat menggunakan Cloud Storage FUSE.
Meningkatkan batas penggantian nama untuk bucket non-HNS
Workload pembuatan titik pemeriksaan harus selalu dilakukan dengan bucket yang mengaktifkan namespace hierarkis karena penggantian nama yang atomik dan lebih cepat serta QPS yang lebih tinggi untuk operasi baca dan tulis. Namun, jika Anda menerima risiko bahwa penggantian nama direktori tidak bersifat atomik dan membutuhkan waktu lebih lama, Anda dapat menggunakan opsi konfigurasi rename-dir-limit
jika melakukan pembuatan titik pemeriksaan menggunakan bucket tanpa namespace hierarkis untuk menentukan batas jumlah file atau operasi yang terlibat dalam operasi penggantian nama direktori pada waktu tertentu.
Sebaiknya tetapkan opsi konfigurasi rename-dir-limit
ke nilai yang tinggi untuk mencegah kegagalan pembuatan titik pemeriksaan. Karena Cloud Storage FUSE menggunakan namespace datar dan objek tidak dapat diubah, operasi penggantian nama direktori melibatkan penggantian nama dan penghapusan semua file individual dalam direktori. Anda dapat mengontrol jumlah
file yang terpengaruh oleh operasi penggantian nama dengan menetapkan opsi konfigurasi rename-dir-limit
.
Gunakan petunjuk berikut untuk menyetel opsi konfigurasi rename-dir-limit
:
Opsi CLI
gcsfuse --rename-dir-limit: 200000 \ BUCKET_NAME
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
File konfigurasi
file-system: rename-dir-limit: 200000
Google Kubernetes Engine
mountOptions: - rename-dir-limit=200000
Compute Engine
gcsfuse --rename-dir-limit: 200000 \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Caching daftar kernel
Cache daftar adalah cache untuk respons daftar file dan direktori, atau ls
, yang meningkatkan kecepatan operasi daftar. Tidak seperti cache stat dan jenis, yang dikelola oleh Cloud Storage FUSE, cache daftar disimpan di cache halaman kernel dan dikontrol oleh kernel berdasarkan ketersediaan memori.
Mengaktifkan caching daftar kernel paling bermanfaat untuk kasus penggunaan berikut:
Beban kerja dengan listingan direktori berulang: konfigurasi ini sangat berguna untuk beban kerja yang sering melakukan listingan direktori lengkap, seperti menjalankan pelatihan AI/ML. Hal ini dapat menguntungkan workload penyajian dan pelatihan.
Pemasangan hanya baca: direkomendasikan untuk menggunakan cache daftar dengan pemasangan hanya baca untuk menghindari masalah konsistensi.
Pengaktifan caching daftar kernel harus dilakukan dengan hati-hati dan hanya boleh digunakan jika sistem file benar-benar hanya baca tanpa ada perubahan konten direktori yang diharapkan selama eksekusi tugas. Hal ini karena dengan tanda ini, aplikasi lokal tidak pernah melihat update, terutama jika TTL disetel ke -1
.
Misalnya, Client 1 mencantumkan directoryA
, yang menyebabkan directoryA
menjadi
penduduk di cache daftar kernel. Client 2 membuat fileB
di bawah
directoryA
di bucket Cloud Storage. Klien 1 terus memeriksa
fileB
di directoryA
, yang pada dasarnya memeriksa entri cache daftar kernel
dan tidak pernah melalui jaringan. Client 1 tidak melihat bahwa ada file baru
di direktori karena daftar file terus ditayangkan dari
cache daftar kernel lokal. Client 1 kemudian mengalami waktu tunggu habis dan program rusak.
Gunakan petunjuk berikut untuk mengaktifkan caching daftar:
Opsi CLI
gcsfuse --kernel-list-cache-ttl-secs: -1 \ BUCKET_NAME
Dengan:
BUCKET_NAME
adalah nama bucket Anda.
File konfigurasi
file-system: kernel-list-cache-ttl-secs: -1
Google Kubernetes Engine
mountOptions: - file-system:kernel-list-cache-ttl-secs:-1
Compute Engine
gcsfuse --kernel-list-cache-ttl-secs: -1 \ BUCKET_NAME MOUNT_POINT
Dengan:
BUCKET_NAME
adalah nama bucket Anda.MOUNT_POINT
adalah direktori lokal tempat bucket Anda akan dipasang. Contoh,/path/to/mount/point
.
Saat Anda menggunakan opsi pemasangan file-system:kernel-list-cache-ttl-secs
, nilainya berarti sebagai berikut:
Nilai positif mewakili TTL dalam detik untuk menyimpan respons daftar direktori dalam cache halaman kernel.
Nilai
-1
melewati habis masa berlaku entri dan menampilkan respons daftar dari cache saat tersedia.
Menggunakan cache kompilasi persisten JAX (JIT) dengan Cloud Storage FUSE
JAX mendukung cache Just-In-Time (JIT), cache kompilasi persisten opsional yang menyimpan artefak fungsi yang dikompilasi. Saat menggunakan cache ini, Anda dapat mempercepat eksekusi skrip berikutnya secara signifikan dengan menghindari langkah-langkah kompilasi yang berlebihan.
Untuk mengaktifkan penyiapan cache JIT, Anda harus memenuhi persyaratan berikut:
Gunakan JAX versi terbaru: gunakan JAX versi 0.5.1 atau yang lebih baru untuk mendapatkan fitur dan pengoptimalan cache terbaru.
Maksimalkan kapasitas cache: untuk mencegah penurunan performa karena penghapusan cache, pertimbangkan untuk menyetel ukuran cache yang tidak terbatas, terutama jika Anda ingin mengganti setelan default. Anda dapat melakukannya dengan menetapkan variabel lingkungan:
export JAX_COMPILATION_CACHE_MAX_SIZE=-1
Pastikan YAML pod checkpoint: gunakan konfigurasi checkpoint untuk titik pemasangan cache JIT JAX.
Langkah berikutnya
Gunakan file YAML Google Kubernetes Engine contoh untuk mengonfigurasi praktik terbaik penyesuaian.
Pelajari lebih lanjut opsi file konfigurasi Cloud Storage FUSE.
Pelajari lebih lanjut opsi CLI Cloud Storage FUSE.