ไฟล์มีเดียแตกต่างจากส่วนต่างๆ ของระบบของคุณที่มีลอจิกของแอปพลิเคชัน เนื่องจากการให้บริการไฟล์มีเดียเป็นงานที่ต้องใช้ I/O มาก ในขณะที่ลอจิกของแอปมักจะต้องใช้ I/O และ CPU ร่วมกัน (ความสมดุลที่แน่นอนขึ้นอยู่กับแอป) นี่คือเหตุผลที่เหมาะสมอย่างยิ่งที่จะใช้ระบบให้บริการสื่อโดยเฉพาะซึ่งปรับให้เหมาะกับดิสก์และปริมาณงานเครือข่าย

คำแนะนำทั่วไปบางประการหากคุณใช้เซิร์ฟเวอร์เฉพาะของคุณเอง:
- ลงทุนใน RAM จำนวนมากและใช้แคชสำหรับเนื้อหาที่คุณใช้บ่อยที่สุด แนวคิดคือการประหยัดเวลาในการเข้าถึงดิสก์ (ในทางทฤษฎี RAM เร็วกว่าประมาณ 100 เท่า) Memcache เป็นโซลูชันยอดนิยมในปัจจุบัน afaik

- ลงทุนใน IO ของดิสก์ที่รวดเร็ว ติดตั้งดิสก์หลายตัว และใช้ RAID (การสตริป) เพื่อปรับปรุงปริมาณงาน

- เมื่อเลือกผู้ให้บริการโฮสติ้งสำหรับเซิร์ฟเวอร์เฉพาะ / co-lo ของคุณ ให้เน้นที่แบนด์วิธ

- ถ้าเป็นไปได้ คุณต้องการค้นหาไฟล์ใกล้กับผู้บริโภคเพื่อปรับปรุงเวลาแฝงของเครือข่าย ตัวอย่างเช่น ไฟล์มีเดียในภาษาโปรตุเกสแบบบราซิลจะได้รับประโยชน์หากจัดเก็บไว้ในเซิร์ฟเวอร์ในอเมริกาใต้

- CDN ที่ดีสามารถแก้ปัญหาข้างต้นได้ทั้งหมด จากประสบการณ์ของฉันเอง มันลดภาระในเซิร์ฟเวอร์ของเราลง ~85% เราใช้ Cotendo และ Akamai ผู้ให้บริการรายอื่นที่คุณสามารถดูได้: CDNetworks, Limelight, Level3

หากคุณเพิ่งเริ่มต้น ทางเลือกที่ดีที่สุดของคุณคือการใช้ S3 เพื่อจัดเก็บไฟล์ของคุณ โดยมี CloudFront เป็น CDN ของคุณ จากประสบการณ์ของฉันเอง มันเป็นวิธีแก้ปัญหาที่ง่ายมากในการตั้งค่าและค่อนข้างประหยัด
*เมื่อเริ่มต้นใช้งาน* - เป็นค่าใช้จ่ายเชิงเส้นตรงกับปริมาณข้อมูลและการใช้งาน เกินเกณฑ์ที่กำหนด แม้ว่าจะเริ่มมองหาการจัดการชั้นวางพื้นที่เก็บข้อมูลเฉพาะของคุณเองและใช้ CDN อื่นบ้างก็สมเหตุสมผล