Como evitar o carregamento de E / S sob o serviço Linux for Video?

6

Atualmente, estou exibindo vídeos de conferências por meio do Nginx em três servidores. 4 núcleos, memória suficiente (sem troca usada) e RAID-10 com 8 unidades por servidor. Infelizmente iostat -xd 1 me dá 100% em todos os 3 servidores e iotop mostra Nginx comendo 99-100%.

Eu estive pensando em FSs distribuídos (mas qual deles e ele ajudaria?); quaisquer outras maneiras de evitar isso sem apenas comprar novos servidores (com toda a sobrecarga envolvida ...)?

Note que não é possível ajustar os vídeos na memória; há muitos e eles são muito grandes. A distribuição também não está ok para colocar apenas alguns na memória.

    
por CharlesS 22.07.2012 / 14:03

1 resposta

9

Meu trabalho é construir sistemas de VoD comerciais grandes (> 1 milhão de usuários) e, a menos que você possa utilizar multicast / anycast e não usar um CDN, você tem apenas uma opção para ampliar seus sistemas de armazenamento e redes a carga máxima de E / S simultânea que você precisa.

Certamente, o caching local, como você alude, pode ajudar, mas eu sempre dimensiono nossos streamers para assumir zero caching. Obviamente, nossos casos de uso serão diferentes, mas se você tiver um catálogo de vídeos comparativamente pequeno, considere colocar seu conteúdo em volumes baseados em SSD e / ou armazenamento flash baseado em PCIe, como o FusionIO kit (existem outros fabricantes desse tipo de coisa nos dias de hoje, mas como FIO foram os primeiros no bloco, eles são os que eu conheço e confio melhor). Quando construímos minha primeira plataforma significativa desse tipo, acabamos usando literalmente dezenas de milhares de discos SAS de 2,5 GB de 72 GB apenas para garantir que tivéssemos capacidade de leitura aleatória suficiente, porque é disso que você precisa, a lógica diz que você se importaria mais sobre o desempenho sequencial porque o conteúdo de vídeo é apenas grandes arquivos, mas quando você tem tantas pessoas tocando vídeos diferentes de diferentes pontos de partida, esse tipo de cache praticamente sai da janela, você precisa do melhor desempenho de leitura aleatória que conseguir. Também é importante garantir que você tenha um caminho tão eficiente do disco para a porta de rede, que não há uma maneira fácil de otimizar isso, além de entender seus discos / controladores / barramentos / NICs e drivers.

As alterações no sistema de arquivos provavelmente não passarão por esse problema.

    
por 22.07.2012 / 14:29