วิธีเพิ่มประสิทธิภาพ EC2 ให้สูงสุด


11

ข้อจำกัดความรับผิดชอบ: ฉันเป็นนักพัฒนาที่ดีที่สุดในโลกแห่งเซิร์ฟเวอร์

สวัสดีพวกคุณ ฉันมีอินสแตนซ์ของเซิร์ฟเวอร์บน EC2 c5d.9xlargeซึ่งมีสเปคคือ:

  • ระบบ: Ubuntu 18.04
  • vCPU: 36 เธรด / แกน
  • หน่วยความจำ: 72 GB
  • ที่เก็บข้อมูล: 900 GB NVMe SSD
  • แบนด์วิดธ์ EBS เฉพาะ: 7,000 Mbps
  • ประสิทธิภาพเครือข่าย: 10 Gbps

สถานการณ์จำลอง:ฉันใช้เซิร์ฟเวอร์นี้เพื่ออัปโหลดวิดีโอขนาดใหญ่ (4K, 1+ ชม.) และประมวลผลโดยใช้ FFMPEG แต่เปรียบเทียบกับเซิร์ฟเวอร์ UpCloud ก่อนหน้าของฉันที่มี 12 คอร์และ RAM 48 GB ของเซิร์ฟเวอร์ EC2 นี้ใช้เวลาอัปโหลดและประมวลผลนานขึ้น 1.5 เท่า ซึ่งฉันคิดว่าไม่ควรเป็นอย่างนั้น

คำถาม:ฉันจะให้ประสิทธิภาพสูงสุดสำหรับสิ่งที่ฉันจ่ายได้อย่างไร


คุณควรดูค่าใช้จ่ายของAWS Elastic Transcoderเพื่อดูว่ามันใช้งานได้ดีกว่าสำหรับคุณหรือไม่
ทิม

ขอบคุณ @Tim ฉันเห็นมันมาแล้ว แต่จริง ๆ แล้วฉันมีการโทรอีกสองสามครั้งบนเซิร์ฟเวอร์นี้ดังนั้นฉันจึงคิดว่าฉันจะรวมมันเข้าด้วยกัน
Martavis P.

คำตอบ:


19

ของคุณc5d.9xlargeมาพร้อมกับพื้นที่เก็บข้อมูลอินสแตนซ์ 900GB (หรือที่เก็บชั่วคราว ) - คุณใช้เพื่อจัดเก็บและประมวลผลไฟล์หรือไม่? ในขณะที่อินสแตนซ์ของคุณมีแบนด์วิดธ์ EBS เฉพาะบางส่วนที่เก็บข้อมูลบนอินสแตนซ์ SSD จะยังเร็วกว่ามาก ฉันแนะนำให้คุณใช้ไฟล์นั้นกับไฟล์ต้นฉบับและไฟล์ชั่วคราวทั้งหมดและเก็บผลลัพธ์ไว้ที่ EBS เท่านั้น

มีบางประการที่มีการจัดเก็บอินสแตนซ์แม้ว่า:

  1. คุณต้องจัดรูปแบบและติดตั้งก่อนจึงจะสามารถใช้งานได้ อ้างถึงคำตอบนี้สำหรับรายละเอียดเพิ่มเติม: ติดตั้งที่เก็บอินสแตนซ์ SSD บน AWS EC2 โดยอัตโนมัติใน Ubuntu 16.04

  2. เนื้อหาจะถูกลบเมื่อคุณหยุดและเริ่มต้นอินสแตนซ์อีกครั้ง มันยังมีชีวิตอยู่รีบูต แต่ไม่หยุด / เริ่ม


อัปเดต:ตามค่าเริ่มต้น SSD จะไม่ถูกเมาท์ - คุณจะต้องทำตามขั้นตอนในคำตอบที่เชื่อมโยงข้างต้นเพื่อใช้ประโยชน์จากมัน ในการกำหนดค่ามาตรฐานหลังจากบูตคุณจะใช้ EBS ซึ่งช้ากว่า SSD

จากนั้นคุณจะต้องตรวจสอบให้แน่ใจว่าคุณกำลังจริงใช้มัน - ตั้งค่าอัปโหลด , ทำงานและไดเรกทอรีชั่วคราวที่ SSD จุดติด

หรือดียิ่งขึ้น - เนื่องจากคุณมี RAM 72 GB - สร้าง RAM disk และใช้เป็นไฟล์ชั่วคราว นั่นจะเร็วกว่า SSD (หากไฟล์พอดี)

ก่อนอื่นไม่คำนึงถึงความเร็วในการอัปโหลดและเพิ่มประสิทธิภาพการประมวลผล - อัปโหลดไฟล์ไปยัง EBS และกำหนดเวลาการประมวลผลจากนั้นอัปโหลดไปยัง SSD และตั้งเวลาและจากนั้นไปยังดิสก์ RAM และเวลาในการประมวลผล ดูว่าพวกเขาแตกต่างกันมากแค่ไหน

ความเร็วในการอัปโหลดจะได้รับผลกระทบจากหลายด้านรวมถึงระยะทางและเวลาแฝงระหว่างคุณและภูมิภาค AWS ที่คุณกำลังอัปโหลด คุณใช้พื้นที่ AWS ใกล้กับคุณหรือไม่

เรื่องประสิทธิภาพของ CPU - คุณได้มี 36 ซีพียูที่มีอยู่ แต่ในแต่ละแกนเดียวอาจจะช้ากว่าที่แกนในก่อนหน้านี้เครื่อง 12 หลักของคุณ ขึ้นอยู่กับสถาปัตยกรรมของ CPU และความเร็วสัญญาณนาฬิกา อย่างไรก็ตามหากคุณสามารถทำการประมวลผลวิดีโอแบบคู่ขนานใน 36 เธรดคุณควรจะดีกว่าในกรณีนี้ หากคุณใช้เธรดเดี่ยวคุณอาจไม่ได้ประสิทธิภาพที่ต้องการ

หวังว่าจะช่วย :)


ใช่ฮาร์ดไดรฟ์ใช้สำหรับการจัดเก็บในขณะที่ไฟล์กำลังประมวลผลและไฟล์นั้นมีอุณหภูมิจนกว่ากระบวนการจะเสร็จสิ้น ไฟล์ผลลัพธ์ถูกส่งไปที่ S3 จริง ๆ แล้วฉันไม่รู้ว่าติดตั้ง SSD ด้วยหรือไม่ ฉันเริ่มรู้ว่า AWS ไม่ได้ใช้รายละเอียดเป็นการตั้งค่าเริ่มต้น การติดตั้ง SSD ทำให้การอัปโหลดเร็วขึ้นหรือไม่ ติดตาม: ความคิดใด ๆ ที่ฉันสามารถกำหนดค่าสูงสุดของ CPU ที่อนุญาตเช่นกันได้อย่างไร
Martavis P.

@MartavisP เพิ่มการอัปเดตบางคำตอบ
MLu

ว้าวขอบคุณมากสำหรับข้อมูล! ฉันจะศึกษาและนำสิ่งที่คุณเขียนไปใช้
Martavis P.

1
คำตอบที่ดี คุณต้องสร้างเกณฑ์มาตรฐานเพื่อหาปัญหาคอขวดทำลายลงไปจนถึงเวลาอัปโหลดเวลาประมวลผลการใช้งาน CPU การใช้งาน EBS / เครือข่าย ฯลฯ มันอาจจะง่ายเหมือนที่คุณมีเวลาแฝงมากกว่าในเซิร์ฟเวอร์นี้ดังนั้นการอัปโหลดช้าลง ซึ่งคุณสามารถหลีกเลี่ยงได้โดยการอัพโหลดข้อมูลในเธรดแบบขนานไปยัง EC2 / S3 Netflix มีวิดีโอนี้ใน youtube ซึ่งอาจน่าสนใจ แต่ทำตามขั้นตอนการวินิจฉัยของคุณก่อนที่คุณจะใส่ใจกับรายละเอียดชนิดนั้น
ทิม

1

มีขอบเขตที่จะพิจารณาทางเลือกอื่นหรือไม่? สำหรับค่าใช้จ่ายของ a c5d.9xlargeถึงแม้ว่าคุณจะได้รับส่วนลดมากมายในตลาดเซิร์ฟเวอร์เฉพาะคุณอาจมีเครื่องจักรที่เทียบเท่าหรือดีกว่าหลายเครื่อง

การใช้คลาวด์สำหรับปัญหาที่ปรับขนาดในแนวดิ่งนี้เป็นสูตรสำหรับการจ่ายเงินมากเกินไปและอย่างที่คุณเห็นประสิทธิภาพที่แย่

ขออภัยที่ไม่ใช่คำตอบ แต่ฉันมีตัวแทนไม่เพียงพอที่จะแสดงความคิดเห็น


นี่คือส่วนลดสำหรับฉันเปลี่ยนจาก UpCloud ดังนั้นคุณแนะนำอะไร
Martavis P.

1
ดูเหมือนว่าการคำนวณแบบเดียวกันในคลาวด์นั้นมักจะมีราคาประมาณ 4 เท่าของเซิร์ฟเวอร์เช่ารายเดือนที่เว็บโฮสติ้งแบบสุ่ม จากนั้นมีส่วนลดองค์กร (~ 30%) และคุณสามารถจองเป็นเวลา 3 ปี (2x ถูกกว่า แต่ตอนนี้เลวร้ายยิ่งกว่าผู้ให้บริการเว็บแบบสุ่ม) และเซิร์ฟเวอร์ที่ให้เช่ารายเดือนมักจะเป็น 1 / 12th ของราคาทันทีที่ซื้อฮาร์ดแวร์ นั่นคือสิ่งที่ฉันเห็นอย่างน้อย ดังนั้นในคลาวด์คุณซื้อฮาร์ดแวร์ทุก 3 เดือน แต่คุณไม่ได้เป็นเจ้าของ
usr

ใช่นั่นเป็นจุดที่ดี แต่คุณต้องจำไว้ว่าคุณต้องจ่ายเพื่อการบำรุงรักษาและความสะดวกสบายเหมือนทุกสิ่งในชีวิต ฉันอยากปล่อยให้ AWS เป็นช่างของฉันแทนที่จะใช้เวลาหลายวันเพื่อหาวิธีแก้ไขปัญหาเซิร์ฟเวอร์ขาดหาย มันเป็นความรู้ที่ดีที่จะมี แต่ท้ายที่สุดแล้วอาชีพของฉันเกี่ยวกับรหัสดังนั้นคลาวด์จึงเหมาะกับฉัน
Martavis P.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.