alta utilização de memória virtual no openvz?

2

Estamos com muitos problemas de memória em uma nova caixa OpenVZ. É suposto ter 1 gig de memória, não tenho certeza de quanto disso é memória expansível ou garantida. Os programas em geral parecem ocupar mais memória virtual do que na minha caixa em casa e em nossa outra caixa OpenVZ.

Eu escrevi este programa C simples:

#include <stdio.h>
#include <stdlib.h>

int main(){
  char *thingy = malloc(500);
  getchar():
  return 0;
}

Por isso, simplesmente aloca 500 bytes e, em seguida, retorna. Eu corri o programa em 3 computadores. Na minha máquina doméstica e na nossa outra caixa OpenVZ, são mostrados cerca de 1k bytes de memória virtual sendo usados. Na nova máquina problemática, é cerca de 3k.

Eu sei que isso é apenas memória virtual e não memória residente, mas por que essa máquina está alocando tanta memória virtual? Existem algumas configurações que preciso ajustar para as configurações de memória do OpenVZ?

Eu tentei mudar o tamanho da pilha com ulimit -s 256 e reiniciar alguns demônios, mas ainda vi os mesmos resultados.

Estou fazendo todo o meu monitoramento com o htop, isso é mesmo um bom programa para usar com um OpenVZ vps? Eu li que eu deveria estar analisando a saída de / proc / user_beancounters intead ou algo assim.

Devo observar que esse uso de memória parece estar causando falhas. : \

    
por freedrull 12.11.2011 / 01:25

1 resposta

2

Como a memória virtual é efetivamente livre, ninguém se preocupa em otimizar o uso dela. Provavelmente, é apenas alocar uma grande quantia para evitar ter que alocar mais tarde.

Uma alocação maior custa o mesmo que uma pequena alocação. Mas duas pequenas alocações custam mais do que uma grande.

    
por 12.11.2011 / 01:54