Eu não acho que é possível dizer: compre X, instale Y e seu problema será resolvido instantaneamente. Isso levará várias iterações para passar, e você precisará colocar mais trabalho na identificação dos gargalos quando eles inevitavelmente aparecerem. Para a maior parte, vou evitar recomendar hardware específico, já que estaria desatualizado quando eu clicar no botão enviar.
Então, como não temos bons dados sobre os gargalos, vamos fingir que esse é um projeto greenfield. É assim que eu abordaria isso:
- A transmissão de vídeo não exige essa quantidade de RAM ou CPU, mas exige armazenamento rápido. Digamos que quatro SSDs SAS de 400 GB em RAID 10, para 800 GB de espaço utilizável, armazenem seus vídeos. Você pode querer aumentar isso, no entanto, se planeja ter muito mais vídeos para veicular nos próximos anos. Digamos, quatro SSDs SAS de 800 GB em RAID 10, para espaço utilizável de 1600 GB.
- Não fique barato com o NIC. Sua NIC deve suportar, no mínimo, o descarregamento de TCP / IP (mesmo que você acabe não usando), receba dimensionamento lateral e receba coalescência lateral. Algumas NICs como as da Intel têm recursos adicionais para melhorar o desempenho . Você pode gastar um pouco de tempo pesquisando isso.
- Embora você precise prestar atenção e verificar se a rede do seu servidor está configurada e bem ajustada, os problemas de taxa de transferência da rede às vezes são culpa da infraestrutura de rede. Se você estiver no local e não controlar isso, esteja preparado para discutir muito com o seu datacenter. Particularmente, certifique-se de que você não está comprando uma porta de rede que esteja limitada a uma fração da velocidade do link e que o datacenter tenha largura de banda mais que suficiente para acomodá-lo nos horários de pico.
- A CPU não importa muito, mas importa. O servidor da Web não usará muita CPU, mas as interrupções de processamento da NIC podem usar a mesma quantidade de CPU que o servidor da Web e, possivelmente, muito mais. Você provavelmente não precisa de algo top de linha, mas você não deve ser barato aqui também.
- Você terá um trabalho adicional de ajuste se usar um sistema com duas CPUs. Em tal sistema cada processador pode acessar metade da RAM rapidamente, e a outra metade mais lentamente, e vice-versa para a outra CPU. Isso é chamado de NUMA, e você precisará observar os afunilamentos relacionados ao seu servidor da Web ou interromper o processamento em execução em uma CPU e acessar a memória da outra. O Linux inclui ferramentas para ajudá-lo a lidar com isso.
- Você não precisa de muita memória RAM para veicular vídeos, mas seu servidor fará uso de toda a RAM que você puder fornecer, como um cache de disco muito rápido. Não é provável que você acerte um gargalo aqui, eu acho, então começaria pequeno e atualizaria a RAM se necessário. 32 GB podem fazer um bom começo; 192 GB seria um exagero, a menos que você já soubesse que precisava.
- Eu usaria o servidor da Web nginx. Eu sempre faço, porque é muito mais capaz de lidar com milhares de conexões simultâneas do que o Apache, por padrão. Você pode precisar aumentar o número de descritores de arquivos no sistema.
- Eu criaria isso no Red Hat Enterprise Linux 7 e compraria e manteria a assinatura ativa pela vida útil do servidor . Além da documentação abrangente da Red Hat sobre sua distribuição e sobre , e seu extenso .com / knowledgebase "> base de conhecimento , Suporte Red Hat pode ajudá-lo a identificar e resolver gargalos quando eles aparecem, que vale facilmente o preço da admissão.
- Esteja preparado para atualizar componentes, se as circunstâncias o justificarem. Você pode querer atualizar a NIC, a RAM ou a CPU com base nos problemas reais descobertos depois de entrar em produção.
- Tudo isso pressupõe que você esteja criando vários servidores e que as solicitações sejam balanceadas por carga entre elas de alguma forma. Você deve construir os servidores com mais capacidade do que eles precisam, de modo que, no caso de um deles falhar ou precisar ser reinicializado, atualizado, etc., o restante pode ocupar a folga.