Dakwaan Prestasi s5cmd Menghadapi Ujian Dunia Sebenar Ketika Pengguna Melaporkan Keputusan Bercampur-campur

BigGo Editorial Team
Dakwaan Prestasi s5cmd Menghadapi Ujian Dunia Sebenar Ketika Pengguna Melaporkan Keputusan Bercampur-campur

Alat S3 sumber terbuka s5cmd telah menarik perhatian kerana mendakwa kelajuan sehingga 150 kali lebih pantas daripada AWS CLI , tetapi ujian komuniti mendedahkan gambaran prestasi yang lebih kompleks. Walaupun alat ini menjanjikan untuk memenuhi sambungan 40Gbps pada 4.3 GB/s, eksperimen dunia sebenar menunjukkan keputusan yang berbeza.

Dakwaan Prestasi Di Bawah Penelitian

Pengguna sedang menguji dakwaan kelajuan berani s5cmd dengan hasil yang bercampur-campur. Seorang pembangun menjalankan penanda aras terperinci menggunakan instance AWS berprestasi tinggi dengan rangkaian 25Gbps, memuat turun fail 10GB dari S3 . Keputusan menunjukkan s5cmd mengambil masa 24 saat sambil menghasilkan sekitar 20 thread, tetapi alternatif berasaskan Python menyelesaikan tugas yang sama dalam hanya 10 saat. Apabila dioptimumkan dengan 80 pekerja, alat Python mencapai pemindahan dalam 6 saat, mencapai daya pemprosesan 1.6GB/s.

Saya baru sahaja melancarkan r6a.16xlarge dengan NIC 25gbps, mencipta fail 10GB yang saya muat naik ke baldi S3 di wilayah yang sama, melalui titik akhir VPC S3 tempatan. Memuat turun fail 10GB itu ke /dev/shm dengan s5cmd mengambil masa 24s, sambil menghasilkan 20 atau lebih thread yang semuanya menganggur untuk IO.

Ujian ini menyerlahkan kerumitan pengoptimuman prestasi S3 , di mana sambungan individu biasanya terhad pada sekitar 80MB/s, dan daya pemprosesan fail tunggal jarang melebihi 1.6GB/s setiap instance EC2 .

Keputusan Perbandingan Prestasi:

  • Dakwaan s5cmd : Sehingga 4.3 GB/s pada sambungan 40Gbps
  • Ujian dunia sebenar (fail 10GB, instance AWS 25Gbps):
    • s5cmd : 24 saat (417 MB/s)
    • Alternatif Python : 10 saat (1 GB/s)
    • Alat Python yang dioptimumkan: 6 saat (1.6 GB/s)
  • Had sambungan S3 individu: ~80 MB/s
  • Had daya pemprosesan fail tunggal: ~1.6 GB/s setiap instance EC2

Pengendalian Fail Kecil Menunjukkan Potensi

Walaupun keputusan bercampur-campur dengan fail besar, s5cmd nampaknya cemerlang dengan operasi fail kecil. Beberapa pengguna melaporkan peningkatan ketara apabila bekerja dengan banyak fail kecil di bawah 1MB. Pendekatan pemprosesan selari alat ini menangani kesesakan S3 yang biasa, di mana memuat naik banyak fail kecil secara berurutan boleh menjadi sangat perlahan. Malah pelaksanaan selari asas menunjukkan peningkatan kelajuan yang dramatik untuk kes penggunaan ini.

Konfigurasi Lalai s5cmd:

  • Pekerja lalai: 256
  • Ambang minimum pekerja: 8
  • Had keselarasan: 256
  • Integriti data: Pengesahan MD5 checksum dan ETag/Size (pilihan)
  • API: Menggunakan AWS SDK untuk Go dengan ListObjectsV2

Alat Alternatif dan Persaingan

Perbincangan mendedahkan bidang yang sesak dengan alat pengoptimuman S3 . Pengguna menyebut rclone untuk sokongan pelbagai protokol termasuk Google Drive dan WebDAV , geesefs untuk pemasangan S3 , dan alat khusus seperti s3glob untuk mengendalikan berjuta-juta objek dengan padanan corak. Sesetengah penyedia hos kini menawarkan s5cmd sebagai perkhidmatan pra-dipasang, menghapuskan keperluan untuk pemasangan dan penyelenggaraan tempatan.

Wawasan Penggunaan Dunia Sebenar

Pengguna produksi melaporkan bahawa s5cmd secara konsisten mengatasi AWS CLI dengan margin yang ketara, walaupun peningkatan tepat berbeza mengikut kes penggunaan. Kejayaan sering bergantung pada konfigurasi yang betul, termasuk melaraskan saiz bahagian dan kiraan pekerja. Keberkesanan alat ini nampaknya paling ketara dalam senario tertentu dan bukannya sebagai penyelesaian prestasi S3 universal.

Ujian komuniti yang berterusan menunjukkan kepentingan pengesahan dunia sebenar untuk alat prestasi. Walaupun s5cmd menawarkan peningkatan tulen dalam banyak senario, pengguna harus menanda aras kes penggunaan khusus mereka dan bukannya bergantung semata-mata pada angka prestasi tajuk utama.

Rujukan: s5cmd

Halaman repositori GitHub untuk projek s5cmd, mempamerkan penglibatan komuniti dan sumbangan
Halaman repositori GitHub untuk projek s5cmd, mempamerkan penglibatan komuniti dan sumbangan