release da memória em cache do sistema operacional convidado VMware RHEL5

1

De tudo que li, o RHEL usará toda a RAM disponível / não usada para armazenar em cache para aumentar o desempenho.

No entanto, isso se torna um problema para mim em um ambiente VMware. O VMware (ESX4) procura o sistema operacional guest para permitir que ele (ESX) saiba quando o convidado é feito usando a memória para que ele seja disponibilizado para outro servidor.

Então, digamos que eu tenha um convidado que tenha um dB, o dB executa um trabalho intensivo, ele termina e agora está inativo. Mas, como armazenou toda a memória em cache, a VMware ainda acha que o servidor dB precisa dela, por isso não libera a RAM para ser usada pelo servidor da Web que precisa da RAM extra. Claro que posso viver com tantos convidados quanto tenho RAM, mas isso é um desperdício de um enorme recurso de virtualização, já que minha utilização de CPU está abaixo de 10% e minha utilização de RAM (até onde VMware sabe) é de 75%. / p>

Alguma idéia?

    
por user48262 13.07.2010 / 19:51

1 resposta

1

Um mecanismo para recuperar a memória da VM do servidor de banco de dados no seu exemplo seria o driver de balão VMware (que faz parte do VMware Tools):

This is VMware physical memory management driver which acts
like a "balloon" that can be inflated to reclaim physical pages
by reserving them in the guest and invalidating them in the
monitor, freeing up the underlying machine pages so they can
be allocated to other guests. The balloon can also be deflated
to allow the guest to use more physical memory.

Ver, por exemplo, "3.3 Ballooning" em Compreendendo o gerenciamento de recursos de memória no VMware® ESX Server (pdf) .

Você também pode executar este pequeno script

#!/bin/sh
sync && echo 3 > /proc/sys/vm/drop_caches

na VM do servidor de banco de dados para explicitamente liberar pagecache, dentries e inodes se você tiver certeza de que não precisa mais dos caches.

    
por 14.07.2010 / 00:28