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
Menggunakan Cloud Storage FUSE dengan file, statistik, jenis, atau ketiga jenis cache yang diaktifkan dapat meningkatkan performa dan mengurangi biaya, tetapi juga dapat mengurangi konsistensi.
Statistik dan jenis cache
Cache jenis dan statistik dapat mengurangi jumlah panggilan serial ke Cloud Storage saat pembacaan berulang ke file yang sama, sehingga meningkatkan performa. Setel cache statistik dan jenis berdasarkan jumlah file yang memiliki pembacaan berulang dan mungkin mendapatkan manfaat dari penyimpanan dalam cache. Anda dapat menggunakan jumlah file untuk mewakili perkiraan ukuran cache. Sebaiknya gunakan 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 tingkat pemasangan, dan penggunaan memori yang sebenarnya mungkin lebih rendah dari nilai yang Anda tentukan. Atau, Anda dapat menetapkanstat-cache-max-size-mb
ke-1
agar cache statistik dapat 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 20.000 file atau kurang. 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 tingkat pemasangan, dan penggunaan memori yang sebenarnya mungkin lebih rendah dari nilai yang ditentukan. Atau, Anda dapat menetapkan nilaitype-cache-max-size-mb
ke-1
agar jenis cache dapat menggunakan memori sebanyak yang diperlukan.
Sebaiknya jalankan listingan lengkap dengan meneruskan ls -R
pada bucket
yang terpasang sebelum menjalankan beban kerja untuk meningkatkan performa saat pertama kali dijalankan dengan
mengisi cache jenis terlebih dahulu dalam metode batch yang lebih cepat.
Praktik terbaik penyimpanan file dalam cache
Pastikan seluruh set data 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 pada 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 FUSE Cloud Storage untuk membangun karakteristik performa media cache yang mendasarinya jika memberikan 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 FUSE Cloud Storage untuk meningkatkan performa bagi I/O kecil dan acak.
Latensi sistem file Cloud Storage FUSE memengaruhi rsync
, yang hanya membaca dan menulis file satu per satu. 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 saturasi 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 beban kerja Anda memerlukan throughput yang lebih tinggi. Anda dapat menambah 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 kembali dengan backoff eksponensial hingga durasi backoff maksimum yang ditentukan, yang memiliki 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 di bagian kunci logging
dalam file konfigurasi FUSE Cloud Storage. Secara default, file log diputar dan
menggunakan ruang penyimpanan sekitar 1 GiB.