Bagaimana memaksimalkan kinerja EC2 misalnya

11

Penafian: Saya adalah pengguna ujung depan di jenis server dunia.

Halo kawan-kawan. Saya memiliki instance server pada EC2, yang c5d.9xlarge, yang spesifikasinya adalah:

  • Sistem: Ubuntu 18.04
  • vCPU: 36 utas / inti
  • Memori: 72 GB
  • Penyimpanan: 900 GB NVMe SSD
  • Bandwidth EBS khusus: 7.000 Mbps
  • Performa Jaringan: 10 Gbps

Skenario: Saya menggunakan server ini untuk mengunggah video besar (4K, 1+ jam) dan memprosesnya menggunakan FFMPEG tetapi dibandingkan dengan server UpCloud saya sebelumnya dengan 12 core dan 48 GB RAM, server EC2 ini membutuhkan 1,5 kali lebih lama untuk mengunggah dan memproses , yang saya pikir seharusnya tidak demikian.

Pertanyaan: Bagaimana cara saya memaksimalkan kinerja untuk apa yang saya bayar?

Martavis P.
sumber
Anda harus melihat biaya Transcoder AWS Elastic untuk melihat apakah itu bekerja lebih baik untuk Anda.
Tim
Terima kasih @Tim. Saya melihatnya beberapa waktu yang lalu tetapi saya sebenarnya memiliki beberapa panggilan lagi di server ini jadi saya pikir saya akan menggabungkan mereka.
Martavis P.

Jawaban:

19

Anda c5d.9xlargedatang dengan penyimpanan contoh 900GB (alias penyimpanan sementara ) - apakah Anda menggunakannya untuk menyimpan dan memproses file? Meskipun instance Anda memiliki beberapa bandwidth EBS khusus, penyimpanan SSD instan masih akan jauh lebih cepat . Saya sarankan Anda menggunakannya untuk semua file sumber dan sementara dan hanya menyimpan hasilnya ke EBS.

Ada beberapa peringatan dengan penyimpanan instance:

  1. Anda harus memformat dan memasangnya sebelum dapat digunakan. Lihat jawaban ini untuk lebih jelasnya: Secara otomatis me-mount penyimpanan instance SSD pada AWS EC2 di Ubuntu 16.04

  2. Konten dihapus ketika Anda berhenti dan memulai kembali instance. Ini bertahan hidup kembali tetapi tidak berhenti / mulai.


Pembaruan: Secara default SSD tidak dipasang - Anda harus mengikuti langkah-langkah dalam jawaban yang ditautkan di atas untuk menggunakannya. Dalam konfigurasi standar setelah boot Anda akan menggunakan EBS yang lebih lambat dari SSD.

Maka Anda harus memastikan bahwa Anda benar-benar menggunakannya - atur direktori unggah , kerja dan sementara ke titik pemasangan SSD.

Atau bahkan lebih baik - karena Anda memiliki 72 GB RAM - membuat disk RAM dan menggunakannya untuk file sementara. Itu akan lebih cepat daripada SSD (jika file-file cocok).

Pertama-tama abaikan kecepatan unggah dan optimalkan pemrosesan - unggah file ke EBS dan waktu pemrosesan, kemudian unggah ke SSD dan beri waktu dan kemudian ke disk RAM dan waktu pemrosesan. Lihat betapa berbedanya mereka.

Kecepatan unggah akan dipengaruhi oleh banyak aspek, termasuk jarak dan latensi antara Anda dan wilayah AWS tempat Anda mengunggah. Apakah Anda menggunakan wilayah AWS yang dekat dengan Anda?

Re kinerja CPU - Anda memiliki 36 CPU yang tersedia, namun setiap inti tunggal mungkin lebih lambat dari inti di mesin 12-core Anda sebelumnya. Itu tergantung pada arsitektur CPU dan kecepatan jam. Namun, jika Anda dapat memparalelkan pemrosesan video menjadi 36 utas, Anda akan lebih baik dalam hal ini. Jika Anda mengandalkan satu utas, Anda mungkin tidak mendapatkan kinerja yang Anda inginkan.

Semoga itu bisa membantu :)

MLu
sumber
Ya, hard drive digunakan untuk menyimpan saat file sedang diproses dan file tersebut temp sampai proses selesai. File yang dihasilkan dikirim ke S3. Saya sebenarnya tidak tahu apakah SSD sudah terpasang. Saya mulai menyadari bahwa AWS tidak menggunakan spesifikasi sebagai pengaturan default. Apakah memasang SSD membuat pengunggahan lebih cepat? Tindak lanjut: ada ide bagaimana saya bisa memaksimalkan spesifikasi CPU yang diizinkan juga?
Martavis P.
@MartavisP. menambahkan beberapa pembaruan untuk jawabannya.
MLu
Wow, terima kasih banyak atas informasinya! Saya akan mempelajari dan menerapkan apa yang telah Anda tulis.
Martavis P.
1
Jawaban yang bagus Anda perlu melakukan tolok ukur untuk menemukan bottleneck, memecahnya ke waktu unggah, waktu pemrosesan, penggunaan CPU, penggunaan EBS / jaringan, dll. Mungkin sesederhana Anda memiliki latensi lebih banyak ke server ini sehingga unggahan lebih lambat, yang dapat Anda atasi dengan mengunggah data dalam utas paralel ke EC2 / S3. Netflix memiliki video ini di youtube yang mungkin menarik, tetapi lakukan langkah diagnosis Anda sebelum Anda repot dengan detail seperti itu.
Tim
1

Apakah ada ruang untuk melihat alternatif? Untuk biaya c5d.9xlarge, bahkan jika Anda mendapatkan diskon besar, di pasar server khusus Anda bisa memiliki beberapa mesin yang setara atau lebih baik

Menggunakan cloud untuk masalah skala vertikal semacam ini adalah resep untuk membayar lebih dan, seperti yang Anda lihat, kinerjanya buruk

Maaf untuk jenis non-jawaban, tapi saya tidak punya cukup perwakilan untuk berkomentar

Luke F
sumber
Ini diskon untuk saya, beralih dari UpCloud. Jadi apa yang Anda rekomendasikan?
Martavis P.
1
Tampaknya komputasi yang sama di cloud selalu kira-kira 4x harga server sewaan bulanan di beberapa web hoster acak. Lalu, ada diskon perusahaan (~ 30%) dan Anda dapat memesan selama 3 tahun (2x lebih murah tapi sekarang jauh lebih buruk daripada web hoster acak itu). Dan server sewaan bulanan itu biasanya tampaknya 1/12 dari harga pembelian perangkat keras. Setidaknya itulah yang saya lihat. Jadi di cloud Anda membeli perangkat keras setiap 3 bulan tetapi Anda tidak memilikinya.
usr
Ya itu poin yang bagus, tetapi Anda harus ingat Anda membayar untuk perawatan dan kenyamanan, seperti apa pun dalam hidup. Saya lebih suka membiarkan AWS menjadi mekanik saya daripada menghabiskan berhari-hari mencoba mencari cara untuk memperbaiki pemadaman server. Ini pengetahuan yang baik untuk dimiliki tetapi pada akhirnya karier saya adalah tentang kode sehingga cloud bekerja untuk saya.
Martavis P.