Soru Video sunumu için Linux altında IO Yükü nasıl önlenir?


Şu anda 3 sunucu üzerinde Nginx üzerinden konferans videosu sunarım; 4 çekirdek, yeterli bellek (swap kullanılmaz) ve sunucu başına 8 sürücü ile RAID-10. Ne yazık ki iostat-xd 1, tüm 3 sunucuda% 100 verir ve iotop Nginx% 99-100 oranında yemek gösterir.

Dağıtılmış FS'leri düşünmekteyim (fakat hangisi yardım eder?); sadece yeni sunucular satın almadan bunu engellemenin başka yolları (ilgili tüm masraflar dahilinde) ...?

Videoların belleğe sığmasının mümkün olmadığını unutmayın; Çok fazla var ve çok büyükler. Dağıtım, hafızada sadece birkaç tane koymak için de uygun değil.


6
2017-07-22 12:03


Menşei




Cevaplar:


İşim büyük (> 1 milyon kullanıcı) ticari VoD sistemleri oluşturuyor ve çok noktaya yayın / anycast kullanıp bir CDN kullanmıyorsanız, o zaman sadece bir seçeneğiniz var ve bu da depolama sistemlerinizi ve ağınızı maksimum eşzamanlı IO'yu işlemek için ölçeklendirmek. ihtiyacın olan yük.

Kesinlikle yerel önbelleğe alma işlemi, sizin için yaptığınız gibi, yardımcı olabilir, ancak her zaman derleyicileri sıfır önbelleğe alma işlemini boyutlandırıyorum. Açıkçası kullanım durumlarımız farklı olacak, ancak nispeten küçük bir video kataloğuna sahipseniz, içeriğinizi SSD tabanlı birimlere ve / veya FusionIO kiti gibi PCIe tabanlı flash depolama alanına koymayı düşünebilirsiniz (bu tür başka üreticiler de var) bu günlerde bir şey ama FIO ilk blokta ilk olarak benim bildiğim ve güvendiğimdir. Bu türden ilk önemli platformumuzu inşa ettiğimizde, tam olarak rastgele okuma yeteneğine sahip olduğumuzdan emin olmak için tam anlamıyla on binlerce 72GB 2.5 "SAS disk kullanıyorduk, çünkü ihtiyacınız olan şey budur, mantık daha fazla önemsemenizi söyler sıralı performans hakkında çünkü video içeriği sadece büyük dosyalardır, ancak farklı başlangıç ​​noktalarından farklı videoları oynayan çok fazla insanınız olduğunda, bu tür önbellekleme pencerenin hemen hemen dışına çıkar, elde edebileceğiniz en iyi rastgele okuma performansına ihtiyacınız vardır. Ayrıca, diskten ağ bağlantı noktasına kadar etkili bir yol sağlayabildiğinizden emin olmak için de önemlidir. Bunu, disklerinizi / kontrol cihazlarınızı / otobüslerinizi / NIC'lerinizi ve sürücülerinizi anlamaktan daha kolay bir yol yoktur.

Bu arada dosya sistemi değişikliklerini bu problemden kurtarmanız pek olası değil.


9
2017-07-22 12:29



IO yükünü hafifletmek için kullanılan FS'ler dağıtılmıyor mu? - CharlesS
Eğer doğru bir şekilde yapılırsa / noktaya atılırsa evet, eğer çok önemli şeyler yavaşlatabilirlerse - bir CDN kullanarak bakın. - Chopper3