Config de hardware de velocidade de transferência de dados

2
Primeiramente, me desculpe se isso fica um pouco disperso, isso engloba um grande problema para mim que eu tenho lidado há algum tempo.

Aqui está um pequeno histórico: Eu opero um site educacional com vídeo sob demanda para aulas on-line. Durante 4 anos, hospedamos todos os nossos próprios meios de comunicação usando 6 servidores Wowza dedicados em todo o mundo para fornecer nossos meios de comunicação. Nosso custo foi de cerca de US $ 1.500 / mês.

Em um esforço para melhorar o serviço, contratamos um CDN, que está indo bem, mas agora nossos custos de hospedagem estão em torno de US $ 6.000 / mês e gostaríamos de voltar a hospedar 98% de nós mesmos, e apenas terceirizar para um CDN como último recurso com um script de substituição.

Quando tínhamos todos os nossos próprios servidores dedicados, normalmente usamos um 2X quad core de 2,66GHz com 16GB de RAM e 2 SSDs em um RAID0. Embora estivéssemos encomendando a mesma coisa da mesma empresa de hospedagem, em diferentes partes do mundo, notamos grandes diferenças de desempenho, que pareciam estar em um nível de hardware, nunca em nível de rede.

Nós fechamos um acordo para fazer alguns acordos com eles a um ótimo preço, mas agora estou tentando determinar como obter o melhor desempenho para o que preciso.

================================

Agora, para minha pergunta

Digamos que eu queira os melhores tempos de transferência / busca de dados para fornecer o maior número de vídeos simultâneos? Se eu tiver 1000 usuários on-line por vez, eles poderão ter até 250 a 400 arquivos de vídeo individuais abertos ao mesmo tempo. Eu percebo que posso obter 8 drives SSD SAS e colocá-los em um RAID, mas e o processador ou RAM?

Olhando no ebay, vejo coisas como:

PowerEdge R810 1U Server (4X) 1.87GHz Eight-Core Xeon L7555 192GB RAM
POWEREDGE R810 SERVER FOUR X7550 2.0GHZ 96GB

Do ponto de vista do processador, eu posso encontrar aqueles com 8MB - 30MB L3 Cache, mas isso realmente importa para isso? Eu estou melhor com 2 processadores quad core, ou eu preciso de 4 oito núcleos para realmente tirar o máximo proveito disso?

Eu entendo pelo fornecedor de software que mais memória ram é melhor quando você tem vários arquivos abertos, mas, no geral, eles se recusam a fornecer mais detalhes sobre o tipo de hardware que realmente lhe dará um resultado específico. Tudo o que eles dizem é:

http://www.wowza.com/products/streaming-engine/specifications
High-load recommended production hardware
CPU: Dual Quad-Core or a single Hex-Core, 3.00 GHz or better
RAM: 16-32GB
Disk: 2 or more in RAID 0 (striping)
Network: 10Gbps Ethernet

O que é ótimo, mas não diz qual seria o resultado com essa configuração. Eu normalmente, em qualquer dia, preciso transmitir 15.000 vídeos durante o dia todo, com 1.500 picos simultâneos. De uma perspectiva de largura de banda, eu poderia conseguir isso com uma única conexão de internet, se o hardware pudesse acompanhar. Eu sei que há benefícios em ter vários locais, mas ainda posso economizar mais de US $ 50.000 / ano se eu puder descobrir os problemas de hardware.

No final, eu acho que estou querendo saber se eu tenho um RAID de alto desempenho, qual é a ordem das coisas com as quais eu preciso me preocupar? Devo me concentrar apenas na velocidade do clock, cache L3, RAM?

=================================

Atualização:

Eu comprei um novo servidor e estou aprendendo mais sobre configurações e performances de RAID, se você quiser acompanhar, você pode ver a próxima parte da saga aqui:

Novo hdparm RAID lento

    
por Alan 29.12.2014 / 22:42

1 resposta

4

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
por 30.12.2014 / 00:35