Halaman ini menjelaskan performa Cloud Storage FUSE dalam hal latensi, bandwidth, dan percobaan ulang, serta praktik terbaik saat menggunakan Cloud Storage FUSE.
Operasi baca dan tulis
Cloud Storage FUSE memiliki performa lebih baik untuk beban kerja baca dan tulis berurutan daripada beban kerja baca dan tulis acak. Cloud Storage FUSE menggunakan heuristik untuk mendeteksi ketika file sedang dibaca secara berurutan, sehingga Cloud Storage FUSE dapat mengeluarkan permintaan baca yang lebih kecil dan lebih besar ke Cloud Storage menggunakan koneksi TCP yang sama.
Untuk mengoptimalkan performa operasi baca berurutan, sebaiknya upload dan baca file yang berukuran antara 5 MB dan 200 MB. Untuk mengoptimalkan performa pembacaan acak, sebaiknya upload dan baca file berukuran sekitar 2 MB.
Menyimpan data ke dalam cache
Penggunaan Cloud Storage FUSE dengan file, statistik, jenis, atau ketiga jenis cache yang diaktifkan dapat meningkatkan performa dan mengurangi biaya, tetapi juga dapat mengurangi konsistensi.
Cache statistik dan jenis
Cache statistik dan jenis dapat mengurangi jumlah panggilan serial ke Cloud Storage saat pembacaan berulang ke file yang sama, sehingga meningkatkan performa. Tetapkan cache statistik dan jenis sesuai dengan jumlah file yang memiliki pembacaan berulang dan mungkin mendapatkan manfaat dari penyimpanan cache. Anda dapat menggunakan jumlah file untuk menunjukkan perkiraan ukuran cache. Kami merekomendasikan batas berikut untuk setiap jenis cache:
stat-cache-max-size-mb
: gunakan nilai default32
jika beban kerja Anda melibatkan hingga 20.000 file. Jika beban kerja Anda lebih dari 20.000 file, tingkatkan nilaistat-cache-max-size-mb
sebesar 10 untuk setiap 6.000 file tambahan, sekitar 1.500 byte per file.stat-cache-max-size-mb
adalah batas pemasangan, dan penggunaan memori sebenarnya mungkin lebih rendah dari nilai yang Anda tentukan. Atau, Anda dapat menetapkanstat-cache-max-size-mb
ke-1
untuk memungkinkan cache statistik menggunakan memori sebanyak yang diperlukan.type-cache-max-size-mb
: gunakan nilai default4
jika jumlah maksimum file dalam satu direktori dari bucket yang Anda pasang berisi maksimal 20.000 file. Jika jumlah maksimum file dalam satu direktori yang Anda pasang berisi lebih dari 20.000 file, tingkatkan nilaitype-cache-max-size-mb
sebesar1
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 menetapkan nilaitype-cache-max-size-mb
ke-1
untuk memungkinkan jenis cache menggunakan memori sebanyak yang diperlukan.
Sebaiknya jalankan listingan lengkap dengan meneruskan ls -R
di bucket yang telah terpasang sebelum menjalankan workload untuk meningkatkan performa saat pertama kali dijalankan dengan mengisi cache jenis terlebih dahulu dalam metode yang dikelompokkan dan lebih cepat.
Praktik terbaik penyimpanan file dalam cache
Pastikan seluruh set data Anda sesuai dengan kapasitas cache untuk mendapatkan performa terbaik dan untuk menghindari cache thrashing. Selain itu, pertimbangkan kapasitas dan performa maksimum yang dapat disediakan oleh 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 yang jauh lebih tinggi daripada Cloud Storage FUSE.
IOPS (kueri per detik)
Filestore adalah opsi yang lebih baik daripada Cloud Storage FUSE untuk beban kerja yang memerlukan operasi input/output per detik (IOPS) instan yang tinggi, yang juga dikenal sebagai "kueri-per-detik" di Cloud Penyimpanan. Filestore juga merupakan opsi yang lebih baik untuk IOPS yang sangat tinggi pada sistem file tunggal dan latensi yang lebih rendah.
Atau, Anda juga dapat menggunakan fitur cache file Cloud Storage FUSE untuk membangun karakteristik performa media cache yang mendasarinya jika menyediakan IOPS tinggi dan latensi rendah.
Latensi dan throughput
Cloud Storage FUSE memiliki latensi yang lebih tinggi daripada sistem file lokal. Throughput berkurang saat Anda membaca atau menulis file kecil satu per satu, karena akan menghasilkan beberapa panggilan API terpisah. Membaca atau menulis beberapa file besar sekaligus dapat membantu meningkatkan throughput. Gunakan fitur cache file Cloud Storage FUSE untuk meningkatkan performa I/O kecil dan acak.
Latensi sistem file Cloud Storage FUSE memengaruhi rsync
, yang hanya membaca dan menulis satu file dalam satu waktu. Untuk mentransfer beberapa file ke atau dari bucket Anda secara paralel, gunakan Google Cloud CLI dengan menjalankan gcloud storage rsync
.
Untuk informasi selengkapnya, lihat dokumentasi rsync
.
Mencapai throughput maksimum
Untuk mencapai throughput maksimum, gunakan mesin dengan resource CPU yang cukup untuk mendorong throughput dan memenuhi kartu antarmuka jaringan (NIC). Resource CPU yang tidak memadai dapat menyebabkan throttling FUSE Cloud Storage.
Jika Anda menggunakan Google Kubernetes Engine, tingkatkan alokasi CPU ke container file bantuan Cloud Storage FUSE jika workload Anda memerlukan throughput yang lebih tinggi. Anda dapat meningkatkan resource yang digunakan oleh container file bantuan atau mengalokasikan resource tanpa batas.
Pembatasan kapasitas
Untuk membatasi laju traffic yang dikirim Cloud Storage FUSE ke
Cloud Storage, Anda dapat menggunakan opsi berikut sebagai bagian dari
perintah gcsfuse
:
Opsi
--limit-ops-per-sec
mengontrol tingkat pengiriman permintaan ke Cloud Storage FUSE.Opsi
--limit-bytes-per-sec
mengontrol bandwidth yang digunakan Cloud Storage FUSE untuk mendownload data dari Cloud Storage.
Untuk mengetahui informasi selengkapnya tentang opsi ini, lihat
dokumentasi command line gcsfuse
.
Semua pembatasan kapasitas merupakan perkiraan dan dijalankan selama periode 8 jam. Secara default, tidak ada batas kapasitas yang diterapkan.
Kontrol prosedur upload
Secara default, permintaan yang gagal dari Cloud Storage FUSE ke Cloud Storage dicoba lagi dengan backoff eksponensial hingga durasi backoff maksimum yang ditentukan, dengan nilai 30s
(30 detik) secara default. Setelah durasi backoff
melebihi durasi maksimum yang ditentukan, percobaan ulang akan dilanjutkan dengan
durasi maksimum yang ditentukan. Anda dapat menggunakan opsi --max-retry-sleep
sebagai bagian
dari panggilan gcsfuse
untuk menentukan durasi backoff.
Untuk mengetahui informasi selengkapnya tentang opsi --max-retry-sleep
, lihat
dokumentasi command line gcsfuse
.
Semantik direktori
Cloud Storage beroperasi dengan namespace datar, yang berarti
direktori sebenarnya tidak ada di dalam Cloud Storage. Namun,
direktori direpresentasikan oleh nama objek yang diakhiri dengan garis miring (/
)
(misalnya, dalam nama objek my-bucket/directory/file.txt
,
my-bucket/directory/
mewakili direktori). Direktori yang ada sebagai bagian
dari nama objek tetapi tidak ada sebagai objek aktual dikenal sebagai
direktori yang ditentukan secara implisit.
Secara default, saat Anda memasang bucket dengan direktori yang ditentukan secara implisit, Cloud Storage FUSE tidak dapat menyimpulkan atau mengakses direktori tersebut. Cloud Storage FUSE hanya dapat menyimpulkan direktori yang ditentukan secara eksplisit, yang berarti bahwa direktori tersebut ada sebagai objek sebenarnya dalam bucket Cloud Storage.
Misalnya, Anda memasang bucket bernama my-bucket
, yang berisi objek
my-bucket/directory/file1.txt
. Jika Anda menjalankan ls
di direktori pemasangan bucket,
Cloud Storage FUSE tidak dapat mengakses direktori my-bucket/directory/
atau
objek file1.txt
di dalamnya, karena directory
tidak ada sebagai objek
di Cloud Storage. Agar Cloud Storage FUSE dapat menyimpulkan direktori dan
objek di dalamnya, Anda dapat membuat direktori yang ditentukan secara eksplisit dengan
membuatnya di sistem file lokal menggunakan perintah mkdir
, atau dengan menyertakan opsi --implicit-dirs
dalam perintah gcsfuse
Anda.
Untuk mengetahui informasi selengkapnya tentang semantik direktori, termasuk cara memasang bucket
dengan awalan yang ada, lihat File dan Direktori di dokumentasi GitHub.
Untuk mengetahui informasi selengkapnya tentang opsi --implicit-dirs
, lihat
dokumentasi command line Cloud Storage FUSE.
Pertimbangan saat mencantumkan objek
Ketika Anda membuat daftar semua objek di bucket yang terpasang (misalnya, dengan menjalankan ls
),
Cloud Storage FUSE akan memanggil Objek: daftar API di Cloud Storage. API
akan memberi nomor halaman hasilnya, yang berarti Cloud Storage FUSE mungkin perlu melakukan
beberapa panggilan, bergantung pada jumlah objek yang ada di bucket Anda. Perhatikan bahwa hal ini
dapat membuat operasi daftar menjadi mahal dan lambat.
Tolok ukur
Untuk mengetahui petunjuk cara menjalankan uji beban pada FUSE Cloud Storage, lihat Tolok Ukur Performa dalam dokumentasi GitHub.
Logging
Guna mengonfigurasi logging untuk aktivitas Cloud Storage FUSE, termasuk rotasi log,
tentukan kolom pada kunci logging
di
file konfigurasi Cloud Storage FUSE. Secara default, file log dirotasi dan
menggunakan ruang penyimpanan sekitar 1 GiB.