Especificações de hardware para cache da web

1

Estou procurando recomendações de especificações de hardware para um servidor que precisa ser um cache da Web para uma população de usuários de aproximadamente 2.000 conexões simultâneas. Os clientes estão visualizando vídeos HTTP segmentados em taxas de bits que variam de 150kbps a 2mbps. A maioria dos vídeos é "ao vivo", o que significa segmentos de 2 a 10 segundos cada, dos quais 100 são mantidos por vez. Há também alguns vídeos de duração fixa pré-gravados. Como eu iria fazer o cálculo de provisionamento para tal servidor: Que tipo de HDD (SSD?), Quantos NICs quanta RAM, etc? Estou pensando em usar o Varnish no Linux, toda a memória RAM em que consigo chegar, 2 CPUs com 6-8 núcleos cada.

    
por Raj 01.07.2011 / 02:03

1 resposta

2

O verniz poderá compartilhar objetos nas sessões? Em outras palavras, sua arquitetura é tal que o objeto que está sendo carregado pelo cliente de fluxo de vídeo é /somestream/1h42m0s-1h42m10s/ , em oposição a /somestream/for/joeuser ? Nesse caso, com base no que você está descrevendo, eu pularia os SSDs e iria para uma tonelada de RAM; O verniz realmente não precisa de armazenamento em disco para nada quando configurado com um malloc pool. Lembre-se de desativar swappiness . Se, por outro lado, o Verniz estiver apenas passando todas as solicitações para o backend, então, na melhor das hipóteses, tudo o que você está recebendo é alguma proteção contra inundações SYN.

Eu vi o Varnish felizmente empurrando vários gigabits para fora da porta, mas certifique-se de que tudo acima do Varnish também saiba como lidar com esse tipo de tráfego. Alguns firewalls (nomes redigidos para proteger os culpados) mal conseguem lidar com 100 Mbit / s, e muito menos o tipo de tráfego (4Gbit / s) que você está falando se cada uma dessas conexões estiver saturando seu link a 2Mbit / s. Para uma placa de rede, até mesmo uma porta de 10 Gbit integrada provavelmente ficará bem; se você precisar, você também pode fazer coisas bobas com o GigE, mas por que se incomodar? Basta pegar uma porta 10G (ou três) e ligar um dia.

Para o servidor em si, você não precisa de muita CPU, mas maximiza a RAM. Coloque alguns discos rápidos lá, se quiser, mas a única razão pela qual eles estão lá é para o boot. O verniz é um servidor muito, muito magro. Você poderia ir para o cache multi-nível e tentar descarregar vídeos no disco rígido, uma vez que eles rodam fora da memória RAM, mas por quê? Eles já estão em cache no disco em seus servidores de conteúdo; não é como se os discos no servidor do Varnish fossem magicamente melhores. Gastar esse dinheiro em mais RAM ainda. Sério, você não deve bater um olho em 64 ou 96 GB, dado o tipo de largura de banda que você está falando.

Em conselhos não relacionados, se você estiver usando o disco a qualquer momento nesses servidores de streaming, você deve escolher SSDs (ou até mesmo opções mais exóticas como o FusionIO). Para aplicativos de streaming em que você está pulando pelo disco enquanto as pessoas estão transmitindo partes diferentes do mesmo arquivo, os SSDs não são apenas um pouco melhores; eles são, efetivamente, sua única escolha racional.

    
por 01.07.2011 / 04:05