Comecei alguns servidores no EC2 e eles não têm troca.
Estou fazendo algo errado ou é que as máquinas simplesmente não têm?
linux
ubuntu
amazon-ec2
swap
rafamvc
fonte
fonte
Respostas:
Você está certo, as imagens do Ubuntu EC2 EBS não vêm com espaço de troca configurado ( pelo menos para 11.04 ). As imagens "regulares" do tipo de instância têm uma partição de troca, embora apenas 896 MB na que eu testei.
Se algum processo explodir e você não tiver espaço para troca, o servidor poderá parar por um bom tempo antes que o assassino do OOM entre em ação, enquanto que com a troca, apenas fica lento. Por esse motivo, eu sempre gosto de ter espaço de troca, mesmo com RAM suficiente. Aqui estão as suas opções:
Crie um volume EBS (2-4 vezes o tamanho da sua RAM), anexe-o à sua instância (eu gosto de chamá-lo de / dev / xvdm para "memória")
sudo mkswap /dev/xvdm
, adicione-o ao fstabsudo swapon -a
e você estará pronto . Já fiz isso antes e funciona bem, mas provavelmente é um pouco mais lento que o armazenamento de instância, porque passa pela rede.Ou você pode reparticionar seu disco para adicionar uma partição de troca, embora isso possa exigir a criação de uma nova AMI. Não consegui fazer isso em uma instância em execução, porque não consigo desmontar o sistema de arquivos raiz e nem tenho acesso ao dispositivo de disco (/ dev / xvda), apenas à partição (xvda1).
Ou você pode criar um arquivo de troca. Esta é a minha solução preferida agora.
Feito. :) Eu sei que muitas pessoas se sentem mal por usar arquivos em vez de partições, mas certamente funciona bem como espaço de troca de emergência.
fonte
A melhor localização para trocar IMHO é a loja da instância. Por quê? A AWS não cobra por E / S na loja da instância. Além disso, o repositório de instâncias é mais eficiente que o EBS em muitos casos. Apenas certifique-se de ter um script que recrie o arquivo de permuta caso pare a instância. Reinicializações são boas. Por que oh por que não está lá por padrão?
Vamos localizar a loja da instância.
Hurrah, 160,1GB de graça! Coloque seu swap lá e esqueça as excedentes de 100 $ por servidor quando o seu swap baseado no EBS for invadido por engano. Infeliz experiência falando aqui.
Aparentemente, em alguns casos, você não vê o repositório de instâncias.
fonte
Nota : a Amazon mudou sua política de preços e não cobra solicitações de E / S em meados de 2016. A resposta é mantida aqui por razões históricas, mas não há implicações de custo do uso (ou não do uso) de troca nas instâncias apoiadas pelo EC2 EBS.
Isso ocorre por design. A troca é desativada por padrão nas instâncias suportadas pelo EC2 EBS, para evitar custos imprevisíveis.
Se você tiver um aplicativo que consome muita memória que não funciona (por exemplo, em uma instância pequena ou pequena), ele pode gerar uma grande quantidade de solicitações de E / S no seu volume EBS.
A Amazon cobra US $ 0,10 por 1 milhão de solicitações de E / S (consulte http://aws.amazon.com/pricing/ebs/ ).Sob condições normais, você não deve se preocupar com isso; geralmente o custo das solicitações de E / S, mesmo em instâncias menores, alguns dólares, se houver. Portanto, se você sabe que possui uma instância de tamanho adequado e essa troca será usada apenas com pouca frequência, vá em frente e ative-a. Mas tenha cuidado com pequenas instâncias.
Se você ativar a troca, poderá ficar de olho nos Relatórios de uso. Opcionalmente, você também pode configurar um alerta de cobrança acessando o Painel de controle do CloudWatch e criando um novo alarme para o valor total faturado. Dessa forma, você será notificado imediatamente, algo estranho está acontecendo com suas instâncias.
fonte
Verifique o
/etc/fstab
arquivo, eles provavelmente foram configurados sem troca na imagem que você está usando. Eu acho que algumas pessoas rodam sem troca de servidores, pois esperam nunca usar mais do que a memória total - a troca torna tudo super lento.No entanto, estou sempre paranóico com relação a algum processo que aumenta na memória, então acho que seria prudente da sua parte simplesmente configurar uma unidade de troca e recriar uma imagem da instância ec2 em execução.
fonte
Uma solução simples para rodar
swap
emEC2
imagens é rodarswap
compactado comlz4
inram
withzram-init
.systemd
&openrc
.Esta solução não tira
ram
ohost
:fonte
zswap
que fornece cache de RAM compactado sobre um arquivo / disco de troca normal: wiki.archlinux.org/index.php/zswap . Consulte cnx-software.com/2018/05/14/… para obter mais informações sobre o zram.