All Products
Search
Document Center

Object Storage Service:Kurangi permintaan OSS dan tingkatkan kinerja titik pemasangan

Last Updated:Jun 23, 2026

Mengoptimalkan permintaan metadata yang dikirim ossfs 2.0 ke OSS mengurangi biaya panggilan API, meningkatkan konkurensi, dan mempercepat operasi baca/tulis pada titik pemasangan.

Prinsip dasar

ossfs 2.0 dibangun di atas kerangka FUSE (Filesystem in Userspace). Kerangka ini menerjemahkan operasi metadata sistem file menjadi permintaan OSS, sehingga Anda dapat mengakses sumber daya penyimpanan OSS melalui antarmuka sistem file standar.

Perintah

Aturan konversi antarmuka

lookup

Saat menjalankan operasi lookup atau stat dan cache metadata tidak valid, ossfs 2.0 akan terlebih dahulu mengirim permintaan GetObjectMeta ke OSS untuk memperoleh informasi atribut objek dengan nama yang sama.

Jika permintaan GetObjectMeta mengembalikan respons 404 (menunjukkan objek tidak ada), ossfs 2.0 akan mengirim permintaan ListObject(max-keys=1) lebih lanjut untuk mengecek apakah terdapat objek folder virtual dengan nama yang sama.

stat

readdir

Saat menjalankan operasi readdir atau readdirplus, ossfs 2.0 akan berulang kali mengirim permintaan ListObject ke OSS.

Perhatikan bahwa ossfs 2.0 mengaktifkan fitur readdirplus secara default. Saat fitur ini diaktifkan, hasil permintaan ListObject akan digunakan untuk memperbarui informasi cache metadata semua subitem dalam folder yang sesuai, sehingga secara efektif mengurangi jumlah permintaan metadata berikutnya untuk file anak.

readdirplus

Analisis skenario

Mengakses file melalui sistem file sangat berbeda dibandingkan dengan mengakses objek yang sesuai secara langsung di OSS.

Metode akses file

ossfs mengurai path file dari direktori root ke bawah. Sebagai contoh, untuk memperoleh atribut /dir/object, perintah stat /dir/object dijalankan sebagai berikut:

  1. Pertama, lakukan operasi pada /dir dengan mengirim permintaan GetObjectMeta dir. Jika responsnya 404 Not Found, artinya objek tersebut tidak ada; kemudian kirim permintaan ListObject (max-keys=1) dir/. Jika responsnya 200 OK, artinya folder virtual yang sesuai tersedia.

  2. Lanjutkan dengan operasi pada /dir/object dengan mengirim permintaan GetObjectMeta dir/object. Jika responsnya 200 OK, informasi atribut objek berhasil diperoleh.

Satu perintah stat /dir/object menghasilkan dua permintaan GetObjectMeta dan satu permintaan ListObject. Karena setiap komponen path memerlukan pencarian metadata tersendiri, jumlah permintaan OSS meningkat seiring dengan kedalaman path file, sehingga menurunkan kinerja.

Dampak caching metadata file

Penting

ossfs 2.0 mengaktifkan caching metadata file secara default dengan periode validitas cache selama 60 detik. Kapasitas cache metadata diimplementasikan berdasarkan FUSE low-level API, dan kernel sistem operasi menentukan kapan entri cache harus dihapus. Mesin dengan memori lebih besar biasanya dapat menyimpan lebih banyak informasi metadata dalam cache.

Contoh berikut menunjukkan bagaimana caching metadata memengaruhi kinerja saat membaca atribut 100 file anak dalam direktori /dir/.

  • Tanpa caching metadata

    • Mengakses file dengan daftar file yang diketahui:

      Saat menjalankan perintah stat /dir/object-<i> dalam loop, setiap operasi stat dikonversi menjadi satu permintaan GetObjectMeta, sehingga menghasilkan 100 permintaan GetObjectMeta ke OSS untuk memperoleh atribut file—jumlah permintaan metadata yang berlebihan ini berdampak negatif terhadap kinerja.

    • Mengakses file dengan daftar file yang tidak diketahui:

      Saat menjalankan perintah ls, operasi tersebut dikonversi menjadi satu permintaan ListObject ke OSS untuk memperoleh daftar file, lalu menjalankan perintah stat /dir/object-<i> dalam loop untuk memperoleh atribut file berdasarkan daftar tersebut. Hal ini menghasilkan satu permintaan ListObject dan 100 permintaan GetObjectMeta ke OSS, sehingga permintaan metadata yang berlebihan memengaruhi kinerja.

  • Dengan caching metadata

    • Mengakses file dengan daftar file yang diketahui:

      Saat menjalankan perintah stat /dir/object-<i> dalam loop, setiap operasi stat dikonversi menjadi satu permintaan GetObjectMeta. Namun, selama periode validitas cache, ke-100 permintaan tersebut langsung mengenai cache metadata lokal untuk memperoleh atribut file, sehingga secara efektif mengurangi jumlah permintaan yang dikirim ke OSS.

    • Mengakses file dengan daftar file yang tidak diketahui:

      Saat menjalankan perintah ls, operasi tersebut dikonversi menjadi satu permintaan ListObject ke OSS sekaligus memperbarui cache metadata lokal. Setelah cache diperbarui, saat menjalankan perintah stat /dir/object-<i> dalam loop, metadata sudah tersedia di cache lokal sehingga tidak ada permintaan tambahan yang dikirim ke OSS.

Caching metadata secara efektif mengurangi permintaan berulang ke OSS. Saat melakukan traversal semua file dalam sebuah folder, menjalankan perintah ls terlebih dahulu akan memuat cache dan menghilangkan permintaan OSS per file berikutnya.

Metode optimasi

Gunakan metode berikut untuk mengurangi permintaan metadata ke OSS dan meningkatkan kinerja:

Perpanjang waktu cache metadata

Jika data Anda tidak berubah setelah diunggah atau jarang berubah relatif terhadap durasi cache, tingkatkan opsi pemasangan attr_timeout untuk memperpanjang periode validitas cache metadata dan mengurangi permintaan berulang.

  • Skenario bisnis: Dalam skenario anotasi data, sistem membaca batch data mentah yang telah dikumpulkan sebelumnya, memprosesnya, lalu menghasilkan batch data baru. Dalam skenario ini, data mentah tidak akan dimodifikasi setelah diunggah ke OSS.

  • Konfigurasi pemasangan: Dalam file konfigurasi ossfs 2.0, atur periode validitas cache metadata menjadi 7200 detik.

    # Titik akhir bucket (node wilayah)
    --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
    
    # Nama bucket
    --oss_bucket=bucketName
    
    # Periode validitas cache metadata
    --attr_timeout=7200
    
    # Kunci akses ID AccessKey dan AccessKey Secret (opsional untuk versi ossfs 2.0.1 dan yang lebih baru)
    --oss_access_key_id=LTAI******************
    --oss_access_key_secret=8CE4**********************

Lakukan operasi setelah memperoleh daftar file

Sebelum mengakses file individual dalam direktori, jalankan perintah ls atau kirim permintaan ListObject untuk memuat semua metadata file ke cache lokal terlebih dahulu. Dikombinasikan dengan periode validitas cache yang lebih panjang, hal ini menghilangkan permintaan berulang per file ke OSS.

Anda dapat mengganti perintah ls dengan program apa pun yang membaca isi direktori. Contoh berikut mencantumkan file dalam direktori /mnt/data/.

Python

os.listdir('/mnt/data/')

Go

entries, err := os.ReadDir("/mnt/data/")

C

dir = opendir("/mnt/data/");
if (dir != NULL) {
  struct dirent *entry;
  while((entry = readdir(dir)) != NULL) {}
  closedir(dir);
}

Gunakan cache negatif untuk mempercepat pembuatan file

Untuk membuat file baru, sistem file menjalankan dua panggilan sistem secara berurutan: lookup dan create.

  1. Operasi lookup menentukan apakah file yang sesuai ada. Di ossfs 2.0, operasi ini diurai menjadi permintaan GetObjectMeta dan permintaan ListObjects.

  2. Jika responsnya error 404 Not Found, ossfs membuat file menggunakan operasi create. Saat ossfs 2.0 menjalankan create, ia juga mengirim permintaan GetObjectMeta dan ListObjects untuk memverifikasi keberadaan file di OSS.

Dengan demikian, proses pembuatan file baru melibatkan empat operasi kueri metadata OSS.

ossfs 2.0 mendukung caching respons `404` yang dikembalikan oleh OSS untuk mengurangi permintaan duplikat berikutnya. Untuk mengaktifkan fitur ini, tentukan opsi berikut saat memasang sistem file:

  • --oss_negative_cache_timeout=30 (Nilai default adalah 0 detik. Kami menyarankan agar nilai ini lebih kecil daripada nilai attr_timeout.)

  • --oss_negative_cache_size=10000 (Nilai default: 10000)

Saat cache negatif OSS diaktifkan, respons 404 dari operasi lookup untuk file baru akan disimpan dalam cache. Akibatnya, kueri berikutnya selama operasi create akan mengenai cache negatif sehingga tidak ada permintaan yang dikirim ke OSS. Hal ini mengurangi jumlah permintaan OSS untuk proses pembuatan file dari empat menjadi dua.

Penting

Setelah Anda mengaktifkan cache negatif OSS, jika entri cache 404 untuk file bernama object-A disimpan dalam cache, file tersebut hanya akan terlihat di titik pemasangan setelah entri cache kedaluwarsa, meskipun Anda segera membuat object-A di OSS. Periode validitas cache ditentukan oleh oss_negative_cache_timeout. Fitur ini tidak disarankan untuk skenario yang memerlukan konsistensi data tinggi.

Perbandingan kinerja

Metode pengujian: Pasang Bucket OSS dengan ossfs 2.0 pada Instance ECS di wilayah yang sama menggunakan titik akhir internal dengan caching metadata diaktifkan, lalu baca metadata 10.000 file dalam direktori yang dipasang.

Hasil pengujian

Operasi

Waktu yang dibutuhkan

Tanpa memuat cache metadata terlebih dahulu (membaca metadata file dalam folder secara langsung tanpa menjalankan perintah ls sebelumnya)

111 detik

Dengan memuat cache metadata terlebih dahulu (menjalankan perintah ls terlebih dahulu, lalu membaca metadata file dalam folder)

18 detik

Kesimpulan pengujian: Memuat cache metadata sebelum akses file massal, dikombinasikan dengan periode validitas cache yang sesuai, secara signifikan mengurangi permintaan metadata OSS dan meningkatkan kinerja keseluruhan.