Sobrecarga de memória do Azure

2

Pergunta: qual é a sobrecarga efetiva do Windows Azure?

Problema: Se a memória for trocada com freqüência, o aplicativo irá parar. Alugar uma instância maior custa dinheiro. Sabendo o que preciso, posso simplesmente calcular o que devo alugar.

Contexto

Estou executando os papéis de computação do Azure há algum tempo. No entanto, algo que ainda não tenho controle é o 'overhead' que o Microsoft Azure adiciona às instâncias. A sobrecarga é principalmente 'memória' aqui.

Mais detalhes: são instâncias de função do .NET, 1 função por VM.

Basicamente, o que eu gostaria de fazer é calcular a quantidade de memória usada pelo aplicativo e relacioná-la ao tamanho da instância (por exemplo, se eu tiver um aplicativo que eu saiba usar efetivamente 400 MB de memória, quero calcular se devo usar uma função de 768 MB ou uma função de 1,3 GB).

Razões para esta questão

As razões pelas quais eu quero fazer isso são abundantes; Eu posso escolher otimizar a pressão da memória no programa se eu estiver acima de um certo limite de memória, eu posso escolher alugar outra instância se isso for mais econômico, eu posso decidir usar mais instâncias, etc. Sem a informação apropriada , Acho impossível fazer esses casos de negócios.

Exemplos de informações que estou procurando

A sobrecarga vem de várias formas:

  • Sobrecarga da função de trabalho VM. Custo em termos de memória / CPU?
  • Ativando o depurador remoto / desktop remoto. Custo em termos de memória / CPU?
  • Localização geral de máquinas virtuais em máquinas físicas. Por exemplo. se eu tiver 14 instâncias XS que usem 768 MB em uma máquina física e essa máquina física tiver 8 GB de memória, isso significa que 2 GB serão trocados. Com quanta memória (%) posso contar efetivamente?
  • Outras coisas que afetam a memória?

Basicamente, estou feliz com qualquer coisa que se resume a [effective memory] = [program memory cost] * a + b; , em que b pode ser uma configuração, um recurso ou uma constante.

    
por atlaste 13.07.2015 / 12:08

1 resposta

2

É difícil encontrar esse tipo de informação como nunca foi anunciado publicamente pela Microsoft, e muitos fatores entram em jogo ao decidir quanto RAM o sistema operacional usará, mas tentarei responder com o melhor de minha capacidade com base em o uso de VMs dentro do Azure, já que basicamente VMs e instâncias de função estão usando o mesmo sistema operacional, a diferença entre elas seria quem está encarregado da manutenção, como a disponibilidade é configurada, dimensionamento automático ... etc.

A Microsoft diz que para instalar o Windows 2012 R2 Server, você precisará de pelo menos 800 MB de RAM. Após a conclusão da instalação, você pode ir tão baixo quanto 512 MB de RAM e o sistema operacional ainda seria executado. Você pode usar esse número como Base para a quantidade de servidores Windows. precisa de RAM para ser executado. Você pode comprimi-lo para ir além da marca de 512 MB removendo a GUI e redimensionando para a Server Core Instalação

Você pode medir a sobrecarga de memória acionando algumas máquinas de teste usando diferentes tamanhos, RDP na máquina e ver onde o Windows está descansando na memória, fiz um exercício como esse há um tempo atrás e a tabela abaixo resumir minhas descobertas, observe que todas as VMs estão instaladas com GUI.

VM tier with RAM - RAM consumed by OS

A0 768 MB - 500/600 MB

A1 1.75 GB - 750/900 MB

A2 3.5 GB - 850/1000 MB

Qualquer coisa que você use logo após esse estágio, o SO ficará confortável dentro do Limite de 1,5 GB. Como você está usando instâncias de funções, eu jogaria mais RAM para cada instância por uma pequena margem e calcularia meu caminho de lá.

link

link

    
por 13.07.2015 / 22:42

Tags