Performans EC2 örneği nasıl en üst düzeye çıkarılır


11

Yasal Uyarı: Ben bir sunucu tür dünyada bir ön uç geliştirici.

Merhaba millet. EC2, c5d.9xlargeözellikleri olan bir sunucu örneği var:

  • Sistem: Ubuntu 18.04
  • vCPU: 36 iplik / çekirdek
  • Bellek: 72 GB
  • Yığın hafıza / Bellek: 900 GB NVMe SSD
  • Özel EBS Bant Genişliği: 7.000 Mbps
  • Ağ Performansı: 10 Gb / sn

Senaryo: Bu sunucuyu büyük videolar (4K, 1+ saat) yüklemek ve FFMPEG kullanarak işlemek için kullanıyorum ancak 12 çekirdekli ve 48 GB RAM'li önceki UpCloud sunucumla karşılaştırıldığında, bu EC2 sunucusunun yüklenmesi ve işlenmesi 1.5 kat daha uzun sürüyor bence durum böyle olmamalı.

Soru: Ödediğim tutarın performansını nasıl en üst düzeye çıkarabilirim?


Sizin için daha iyi çalışıp çalışmadığını görmek için AWS Elastik Kod Dönüştürücünün maliyetine bakmalısınız .
Tim

Teşekkürler @Tim. Bir süre önce gördüm ama aslında bu sunucuda birkaç çağrı daha var, bu yüzden onları birleştireceğimi düşündüm.
Martavis P.

Yanıtlar:


19

Sizin c5d.9xlargeile birlikte 900GB örneği depolama (aka geçici depolama ) - Bunu kullanan dosyaları depolamak ve işlemek için? Örneğin, özel EBS bant genişliği olsa da, örnek SSD depolama alanı çok daha hızlı olacaktır . Bunu tüm kaynak ve geçici dosyalar için kullanmanızı ve sonuçları yalnızca EBS'de depolamanızı öneririm.

Yine de örnek depolamalı bazı uyarılar var:

  1. Sen zorunda format ve montaj kullanılabilmesi önce. Daha fazla ayrıntı için bu cevaba bakın: Ubuntu 16.04'te SSD yönetim ortamını AWS EC2'ye otomatik olarak bağlama

  2. Örneği durdurup yeniden başlattığınızda içerik silinir . Yeniden başlatmadan sağ kalıyor ancak durmuyor / başlamıyor.


Güncelleme: Varsayılan olarak SSD monte edilmez - kullanmak için yukarıdaki bağlantılı cevaptaki adımları izlemeniz gerekir. Önyükleme sonrası standart yapılandırmada, SSD'den daha yavaş olan EBS'yi kullanacaksınız.

Ardından, gerçekten kullandığınızdan emin olmanız gerekir - yükleme , çalışma ve geçici dizini bu SSD bağlama noktasına ayarlayın.

Ya da daha iyisi - 72 GB RAM'e sahip olduğunuzdan - bir RAM diski oluşturun ve bunu geçici dosyalar için kullanın. Bu, SSD'den bile daha hızlı olacaktır (dosyalar uygunsa).

Her şeyden önce, yükleme hızını dikkate almayın ve işlemeyi optimize edin - dosyayı EBS'ye yükleyin ve işlemeyi zamanlayın, daha sonra SSD'ye yükleyin ve zamanlayın ve ardından RAM diskine ve işlem zamanına. Ne kadar farklı olduklarına bakın.

Yükleme hızı, sizinle yüklediğiniz AWS bölgesi arasındaki mesafe ve gecikme de dahil olmak üzere birçok yönden etkilenecektir. Size yakın bir AWS bölgesi mi kullanıyorsunuz?

Yeniden CPU performansı - 36 CPU'unuz var, ancak her bir çekirdek önceki 12 çekirdekli makinenizdeki çekirdeklerden daha yavaş olabilir . CPU mimarisine ve saat hızına bağlıdır. Ancak video işlemeyi 36 iş parçacığına paralel hale getirebiliyorsanız, bu örnekte daha iyi olmalısınız. Tek bir iş parçacığına güveniyorsanız, istediğiniz performansı elde edemeyebilirsiniz.

Umarım yardımcı olur :)


Evet, sabit sürücü dosyalar işlenirken ve işlemler bitene kadar geçici olarak saklamak için kullanılır. Sonuç dosyaları S3'e gönderilir. Aslında SSD'nin de takılı olup olmadığını bilmiyorum. AWS'nin özellikleri varsayılan ayar olarak kullanmadığını anlamaya başlıyorum. SSD takmak yüklemeyi daha hızlı hale getiriyor mu? İzleyin: İzin verilen CPU özelliklerini nasıl en üst düzeye çıkarabileceğim hakkında herhangi bir fikir?
Martavis P.

@MartavisP. cevaba bazı güncellemeler ekledi.
MLu

Vay canına, bilgi için çok teşekkür ederim! Yazdıklarınızı inceleyip uygulayacağım.
Martavis P.

1
Mükemmel cevap. Tıkanıklığı bulmak, yükleme süresine, işlem süresine, CPU kullanımına, EBS / ağ kullanımına vb.Karıştırmak için karşılaştırma yapmanız gerekir. EC2 / S3'e paralel evreler halinde veri yükleyerek bu sorunu çözebilirsiniz. Netflix, youtube'da ilginç olabilecek bu videoya sahip , ancak bu tür ayrıntılarla uğraşmadan önce tanı adımlarınızı yapın.
Tim

1

Alternatiflere bakmanın kapsamı var mı? A bedeli için c5d.9xlarge, önemli bir indirim alsanız bile, özel sunucu pazarında birkaç eşdeğer veya daha iyi makineye sahip olabilirsiniz

Bu tür dikey ölçekli sorun için bulut kullanmak, fazla ödeme ve gördüğünüz gibi düşük performans için bir reçetedir

Cevap vermediğim için üzgünüm, ama yorum yapmak için yeterli temsilcim yok


Bu benim için bir indirim oldu, UpCloud'dan geçiş. Peki ne öneriyorsun?
Martavis P.

1
Bulutta aynı hesaplama, her zaman rastgele bir web barındırıcısında aylık kiralanan bir sunucunun fiyatının yaklaşık 4 katıdır. Sonra, kurumsal indirimler var (~% 30) ve 3 yıl boyunca rezervasyon yaptırabilirsiniz (2x daha ucuz ama şimdi bu rastgele web barındırıcısından çok daha kötü). Ve aylık kiralanan sunucu genellikle donanımın satın alınmasının tam fiyatının 1 / 12'si gibi görünüyor. En azından ben öyle görüyorum. Bulutta donanımı her 3 ayda bir satın alırsınız, ancak ona sahip değilsiniz.
usr

Evet, bu iyi bir nokta, ama bakım ve rahatlık için para ödediğinizi hatırlamanız gerekiyor, hayattaki her şey gibi. AWS'nin tamircim olmasına izin vermeyi, bir sunucu kesintisini nasıl düzelteceğimi anlamaya çalışmak yerine günler geçirmeyi tercih ederim. Sahip olmak iyi bir bilgi ama nihayet kariyerim kod hakkında, bu yüzden bulut benim için çalışıyor.
Martavis P.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.