Topik ini menjelaskan performa ossfs 2.0 dalam berbagai skenario, termasuk kecepatan membaca dan menulis file serta performa dalam skenario konkurensi. Informasi ini memberikan referensi performa yang akurat untuk membantu Anda memilih dan menggunakan ossfs 2.0 dengan lebih baik untuk operasi bisnis Anda.
Lingkungan pengujian
Perangkat Keras
Tipe Instans: ecs.g7.32xlarge
vCPU: 128 vCPU
Memori: 512 GiB
Perangkat Lunak
Sistem Operasi: Alibaba Cloud Linux 3.2104 LTS 64-bit
Versi Kernel: 5.10.134-18.al8.x86_64
Versi ossfs: ossfs 2.0.0beta, ossfs 1.91.4
Konfigurasi mount
Asumsikan bahwa jalur mount volume OSS di dalam kontainer adalah /mnt/oss.
ossfs 2.0
Dalam pengujian ini, tambahkan parameter
otherOptsuntuk menentukan ukuran unggah multipart sebesar 33.554.432 byte.upload_buffer_size=33554432ossfs 1.0
Dalam pengujian ini, tambahkan parameter
otherOptsuntuk mengaktifkan mode baca langsung dan optimasi cache.-o direct_read -o readdir_optimize
Skenario pengujian
Setelah Bucket OSS dimount menggunakan ossfs 2.0.0beta dan ossfs 1.91.4, alat uji I/O fleksibel (FIO) digunakan untuk menguji kemampuan dasar membaca dan menulis ossfs 2.0 dan ossfs 1.0. Skenario pengujian dan hasilnya adalah sebagai berikut.
Menulis data 100 GB secara berurutan menggunakan satu thread
Performa tulis ossfs 1.0 dibatasi oleh performa disk.
Perintah Pengujian
Gunakan FIO untuk menjalankan tugas pengujian bernama file-100G dengan satu thread untuk menulis langsung 100 GB data dengan ukuran bagian 1 MB ke direktori /mnt/oss/fio_direct_write dan keluarkan hasil pengujian.
fio --name=file-100G --ioengine=libaio --rw=write --bs=1M --size=100G --numjobs=1 --direct=1 --directory=/mnt/oss/fio_direct_write --group_reportingHasil Pengujian
Versi ossfs
Bandwidth
Penggunaan core CPU (kapasitas penuh satu core adalah 100%)
Memori puncak
ossfs 2.0
2,2 GB/s
207%
2.167 MB
ossfs 1.0
118 MB/s
5%
15 MB
Membaca data 100 GB secara berurutan menggunakan satu thread
Perintah Pengujian
Setelah membersihkan page cache, gunakan FIO untuk membaca 100 GB data dengan ukuran bagian 1 MB dari direktori /mnt/oss/fio_direct_write secara berurutan menggunakan satu thread dan keluarkan hasil pengujian.
echo 1 > /proc/sys/vm/drop_caches fio --name=file-100G --ioengine=libaio --direct=1 --rw=read --bs=1M --directory=/mnt/oss/fio_direct_write --group_reporting --numjobs=1Hasil Pengujian
Versi ossfs
Bandwidth
Penggunaan core CPU (kapasitas penuh satu core adalah 100%)
Memori puncak
ossfs 2.0
3,0 GB/s
378%
1.617 MB
ossfs 1.0
355 MB/s
50%
400 MB
Membaca data 100 GB secara berurutan menggunakan beberapa thread
Membuat File Uji
Buat 4 file, masing-masing 100 GB, di direktori mount
/mnt/oss/fio.fio --name=file-100g --ioengine=libaio --direct=1 --iodepth=1 --numjobs=4 --nrfiles=1 --rw=write --bs=1M --size=100G --group_reporting --thread --directory=/mnt/oss/fioPerintah Pengujian
Setelah membersihkan page cache, gunakan FIO untuk membaca secara bersamaan 4 file yang telah dibuat dengan ukuran bagian 1 MB di direktori
/mnt/oss/fioselama 30 detik menggunakan 4 thread dan keluarkan hasilnya.echo 1 > /proc/sys/vm/drop_caches fio --name=file-100g --ioengine=libaio --direct=1 --iodepth=1 --numjobs=4 --nrfiles=1 --rw=read --bs=1M --size=100G --group_reporting --thread --directory=/mnt/oss/fio --time_based --runtime=30Hasil Pengujian
Versi ossfs
Bandwidth
Penggunaan core CPU (kapasitas penuh satu core adalah 100%)
Memori puncak
ossfs 2.0
7,1 GB/s
1.187%
6,2 GB
ossfs 1.0
1,4 GB/s
210%
1,6 GB
Membaca 100.000 file dengan ukuran 128 KB masing-masing menggunakan 128 thread secara bersamaan
Object Storage Service (OSS) menyediakan hingga 10.000 permintaan per detik (QPS) untuk setiap akun Alibaba Cloud. Untuk informasi lebih lanjut, lihat QPS. Untuk mencapai performa yang diinginkan dalam pengujian, pastikan QPS untuk akun Alibaba Cloud Anda tidak digunakan oleh bisnis lain.
Prosedur Pengujian
Buat program Go bernama
rw-bench.go.Program ini memiliki fitur inti berikut: 1. Dapat membuat beberapa file dengan ukuran yang sama di direktori file tujuan secara bersamaan. 2. Dapat membaca semua file di direktori file tujuan secara bersamaan, membagi file ke n thread untuk dibaca, dan mencatat data bandwidth.
Kompilasi file program
rw-bench.go.go build rw-bench.goBuat 100.000 file dengan ukuran 128 KB masing-masing di direktori Bucket OSS yang dimount ke sistem file lokal.
mkdir -p <Jalur file uji yang dimount> && ./rw-bench --dir <Jalur file uji yang dimount> --file-size-KB 128 --file-count 100000 --writeBersihkan page cache dan jalankan program. Setelah melakukan pengujian sebanyak 5 kali berturut-turut, gunakan data pengujian yang diperoleh dari pengujian dengan latensi stabil di server.
echo 1 > /proc/sys/vm/drop_caches ./rw-bench --dir <Jalur file uji yang dimount> --threads 128
Hasil Pengujian
Versi ossfs
Bandwidth
Penggunaan core CPU (kapasitas penuh satu core adalah 100%)
Memori puncak
ossfs 2.0
1 GB/s
247%
212 MB
ossfs 1.0
3,5 MB/s
3%
200 MB