Estou acostumado a trabalhar com as cadeias do FreeBSD, mas eu queria experimentar o XenServer 5.5 / Vmware ESXI 5, na esperança de realmente limitar os recursos por VM, depois de instalar algumas máquinas virtuais, tentei executar em uma pequena VM (512RAM, 1 VCPU), (servidor tem 8GB de RAM 2 processadores) o seguinte código:
$ cat > fork.c
#include <stdio.h>
int main() { while(1) fork(); }
$ gcc fork.c -o bomb
$ ./bomb
Em um servidor FreeBSD sem virtualização (sem Xenserver / Vmware) esse código mata a máquina e uma reinicialização precisa ser feita, mas fiquei surpreso que no XenServer o comportamento é "quase" similar, causando alguns problemas. dano.
O XenServer começou a consumir toda a CPU disponível, e a outra VM do FreeBSD começou a ter um desempenho ruim.
Por outro lado, usando a última versão do Vmware Exi, a bomba só afetou a máquina virtual que disparou a bomba, a CPU para o servidor completo não começou a consumir todos os recursos, apenas cerca de 40% dela, em um ponto que me permite criar uma segunda VM e executar uma segunda bomba nela, sem perceber o desempenho no restante da VM. Tendo 2 bombas funcionando ao mesmo tempo, o uso total de CPU foi de 90%.
No meu caso, eu apenas uso o FreeBSD, mas ainda não descobri que evitar uma bomba que pode matar o servidor host, usando o XenServer não ajudou muito. Vmware parece promissor, mas está fora de questão por causa do custo.
Então, alguma idéia de como ajustar o Xenserver ou o Freebsd para lidar com as barras de garfo?