Máquina muito lenta da AWS EC2 após substituir seu volume de raiz

2

Eu tenho uma máquina de produção (c4.2xlarge) que funciona bem. Mas quando faço o seguinte:

  1. Tire um instantâneo do volume raiz enquanto a máquina está em execução (eu sei, Recomenda-se não fazê-lo, mas isso funciona bem para mim)
  2. Crie um volume a partir do instantâneo
  3. Anexe o volume recém-criado a uma máquina de pré-produção (c4.xlarge) como dispositivo raiz (/ dev / sda1)
  4. Iniciar a máquina de pré-produção

A máquina recém-iniciada responde muito lentamente inicialmente. Conforme continuo trabalhando na máquina, a velocidade começa a melhorar, até que depois de algumas horas ela é tão responsiva quanto era antes de eu substituir seu volume de raiz.

Por que isso está acontecendo?

Intuitivamente, isso pareceria um problema de armazenamento em cache , como se a máquina precisasse de "aquecimento" antes de ter o desempenho esperado. Mas isso não faz sentido para mim, já que tudo o que estou fazendo é substituir o volume da raiz da máquina.

    
por Alphaaa 27.04.2017 / 17:35

2 respostas

4

Os instantâneos do EBS são armazenados no S3. Quando você cria um novo volume do EBS a partir de um instantâneo, os dados são transmitidos do S3 para o EBS, pois os blocos são necessários. Eu suspeito que isso também pode derrubar todo o volume, mas pode levar algum tempo, e é por isso que ele prioriza os blocos que você precisa agora .

Para corrigir isso, você pré-aquece seu volume. O procedimento completo está aqui , mas vou descrever os pontos-chave neste postar

  1. Use o comando lsblk para listar os dispositivos de bloco em sua instância. Encontre o novo dispositivo (em negrito aqui)

.

[ec2-user ~]$ lsblk
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
**xvdf**  202:80   0  30G  0 disk
xvda1 202:1    0   8G  0 disk /
  1. Use os utilitários dd ou fio para ler todos os blocos no dispositivo.

.

[ec2-user ~]$ sudo dd if=/dev/**xvdf** of=/dev/null bs=1M

Note que os novos volumes do EBS não precisam de pré-aquecimento, já que nada é armazenado no S3.

NB: são necessários pontos estranhos para que a formatação funcione corretamente.

    
por 27.04.2017 / 19:49
0

Isso provavelmente se deve ao armazenamento em cache do conteúdo do disco na RAM. À medida que seu servidor é executado, as coisas do sistema de arquivos são armazenadas em cache na RAM, permitindo que esses blocos sejam recuperados na velocidade da RAM, em vez de esperar que o bloco seja lido do disco.

Quando você inicia um novo servidor, nada é armazenado em cache na inicialização, mas o cache é preenchido à medida que a carga é aplicada, aumentando, assim, o desempenho.

    
por 27.04.2017 / 17:39