Disclaimer: Eu sou um desenvolvedor front-end em um tipo de servidor do mundo.
Oi pessoal. Eu tenho uma instância de servidor no EC2, the c5d.9xlarge
, cujas especificações são:
- Sistema: Ubuntu 18.04
- vCPU: 36 threads / núcleos
- Memória: 72 GB
- Armazenamento: SSD NVMe de 900 GB
- Largura de banda dedicada do EBS: 7.000 Mbps
- Desempenho de rede: 10 Gbps
Cenário: eu uso esse servidor para fazer upload de vídeos grandes (4K, 1 ou mais horas) e os processo usando FFMPEG, mas comparado ao meu servidor UpCloud anterior com 12 núcleos e 48 GB de RAM, este servidor EC2 está demorando 1,5 vezes mais para carregar e processar , que eu acho que não deveria ser o caso.
Pergunta: Como maximizar o desempenho pelo que estou pagando?
ubuntu
amazon-web-services
amazon-ec2
Martavis P.
fonte
fonte
Respostas:
Você
c5d.9xlarge
vem com armazenamento de instância de 900 GB (também conhecido como armazenamento efêmero ) - você está usando isso para armazenar e processar os arquivos? Embora sua instância tenha uma largura de banda do EBS dedicada, o armazenamento SSD na instância ainda será muito mais rápido . Eu sugiro que você use isso para todos os arquivos de origem e temporários e armazene apenas os resultados no EBS.Existem algumas ressalvas no armazenamento de instância:
Você precisa formatar e montar antes de poder ser usado. Consulte esta resposta para obter mais detalhes: Montar automaticamente o armazenamento da instância SSD no AWS EC2 no Ubuntu 16.04
O conteúdo é limpo quando você para e reinicia a instância. Ele sobrevive à reinicialização, mas não para / inicia.
Atualização: por padrão, o SSD não está montado - você deve seguir as etapas na resposta vinculada acima para usá-lo. Na configuração padrão após a inicialização, você usará o EBS, que é mais lento que o SSD.
Então você terá que ter certeza de que está realmente usando - defina o diretório de upload , trabalho e temporário para esse ponto de montagem do SSD.
Ou ainda melhor - já que você possui 72 GB de RAM - crie um disco RAM e use-o para arquivos temporários. Isso será ainda mais rápido que o SSD (se os arquivos couberem).
Antes de tudo, desconsidere a velocidade de upload e otimize o processamento - faça o upload do arquivo para o EBS e cronometre o processamento, depois faça o upload para o SSD e cronometre-o e depois para o disco RAM e cronometre o processamento. Veja o quanto eles diferem.
A velocidade do upload será afetada por muitos aspectos, incluindo a distância e a latência entre você e a região da AWS na qual está enviando. Você está usando uma região da AWS perto de você?
Re desempenho da CPU - você tem 36 CPUs disponíveis, no entanto, cada núcleo único pode ser mais lento que os da sua máquina anterior de 12 núcleos. Depende da arquitetura da CPU e da velocidade do relógio. No entanto, se você puder paralelizar o processamento de vídeo em 36 threads, será melhor nessa instância. Se você confiar em um único encadeamento, poderá não obter o desempenho desejado.
Espero que ajude :)
fonte
Existe algum escopo para procurar alternativas? Pelo custo de um
c5d.9xlarge
, mesmo se você estiver obtendo um desconto substancial, no mercado de servidores dedicados, você poderá ter várias máquinas equivalentes ou melhoresUsar a nuvem para esse tipo de problema em escala vertical é uma receita para pagar em excesso e, como você viu, um desempenho ruim
Desculpe pelo tipo de não resposta, mas não tenho representante suficiente para comentar
fonte