Configuração do servidor para vídeo segmentado por HTTP ao vivo

2

Estou tentando encontrar a configuração de máquina ideal para um cache da Web que veicule vídeo segmentado por HTTP para alguns milhares de visualizadores simultâneos.

O conteúdo é composto por arquivos de texto que se atualizam periodicamente (chamados de manifestos) com alguns bytes de tamanho (100 - 500 bytes) e um conjunto de arquivos de segmentos de vídeo com milhares de bytes (52.000 - 250.000 bytes).

Minha configuração tem um servidor de origem de vídeo ao vivo que coloca esses arquivos em um servidor habilitado para WebDAV (que será um Apache ou Nginx apropriadamente configurado). Eu gostaria de fazer frente a essa configuração de "origem" em vários locais usando hardware padrão e software de código aberto para atender a população de usuários.

Minhas perguntas são:

  • Estou considerando uma combinação de Nginx + Varnish em meus caches de borda. Isso parece razoável?
  • Qual seria uma boa configuração de máquina? Eu estou considerando 3X2TB 7200RPM HDD em RAID5 e 24GRAM, 1 CPU de código quad. Isso é bom para o verniz? Existe algum parâmetro específico que eu preciso otimizar para obter o melhor do verniz?
  • Faz sentido configurar o verniz em pares de HA ou eles geralmente são configurados como autônomos?
por Raj 15.06.2011 / 23:57

1 resposta

0

O Nginx pode fazer o cache sozinho com o módulo proxy_cache, embora o Varnish tenha mais recursos (que você pode não precisar). Você provavelmente será vinculado a E / S com essa tarefa, não vinculado à CPU. Então, eu realmente olharia para muita memória RAM para cache, ou SSDs. O RAID5 é uma idéia terrível (pequenas gravações aleatórias são muito lentas com RAID5), assim como unidades SATA para uma tarefa de IO alto (elas podem fazer apenas cerca de 70 IOPS por disco, dividido por um fator de 4 para RAID5 escreve).

Ainda com 10000 fluxos simultâneos e 5 segundos segmentos de vídeo, você está falando apenas do pior caso de 2000 IOPs aleatórios. Qualquer SSD pode lidar com isso, supondo que seja grande o suficiente, e se o conjunto de dados for pequeno o suficiente, o cache do sistema de arquivos o levará até lá.

    
por 16.06.2011 / 04:57