Come prevenire il caricamento di IO sotto Linux per la visualizzazione di video?

Attualmente sto servendo video di conferenze tramite Nginx su 3 server; 4 core, abbastanza memory (nessun swap utilizzato) e RAID-10 con 8 unità per server. Purtroppo iostat -xd 1 mi dà il 100% su tutti i 3 server e iotop mostra Nginx che mangia 99-100%.

Ho pensato a FS distribuiti (ma quale e mi aiuterà?); tutti gli altri modi per impedirlo senza acquistare solo nuovi server (con tutti gli overhead coinvolti …)?

Si noti che non è ansible montare i video in memory; ci sono troppi e sono troppo grandi. La distribuzione non è anche ok per mettere solo pochi nella memory.

  • Assegnazione di processi ai cores CPU
  • Come profilare il model di utilizzo dell'HDD?
  • Come ottimizzare meglio una macchina di sviluppo Linux?
  • redhat tuning per singola applicazione con pochi client TCP
  • Come ottimizzare meglio una macchina di sviluppo di Windows?
  • One Solution collect form web for “Come prevenire il caricamento di IO sotto Linux per la visualizzazione di video?”

    Il mio task è quello di build sisthemes commerciali VoD commerciali di grandi size (> 1m utente) e, a less che non sia ansible utilizzare il multicast / anycast e non utilizzare un CDN, hai una sola opzione e che è quello di scalare i sisthemes di storage e di networking per gestire il massimo IO concorrente carico necessario.

    Certamente la memorizzazione locale, come ti accorgerai, può aiutare ma posso sempre dimensionare i nostri streamer per assumere zero caching. Ovviamente i nostri casi di utilizzo saranno diversi, ma se si dispone di un catalogo video relativamente piccolo potresti considerare di mettere i tuoi contenuti su volumi basati su SSD e / o su storage flash basati su PCIe come il kit FusionIO (ci sono altri produttori di questo tipo di cosa in questi giorni ma come FIO sono stati i primi sul block che sono quelli che conosco e fiducia meglio). Quando abbiamo costruito la mia prima piattaforma significativa di questo tipo abbiamo finito usando letteralmente decine di migliaia di dischi SAS da 2,5 GB da soli 72 GB per assicurarci di avere abbastanza funzionalità di lettura random, perché è ciò di cui hai bisogno, la logica dice che ti importerebbe di più sulla performance sequenziale perché i contenuti video sono solo file di grandi size, ma quando hai tante persone a suonare diversi video da diversi punti di avvio questo tipo di caching praticamente esce dalla window, hai bisogno delle migliori performance di lettura random che puoi get. anche importnte per assicurarsi di avere un path efficiente dal disco alla port di networking, non c'è un modo semplice per ottimizzarlo, ma per capire i dischi / controller / bus / NIC e driver.

    Cambiamenti del file system non sono più probabili per farti passare questo problema a proposito.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.