segunda-feira, 24 de março de 2008

VMWare e a briga com o relógio parte II - A Missão

Antes mostrei como acertar o VMware para sincronizar o relógio da máquina. Agora vamos ver a situação de contorno para uma das excessões à solução anterior: processadores com clock variável.

Tudo acontece porque o servidor VMware conta os clocks da CPU, para se manter atualizado no tempo. Ele sabe qual é o clock da CPU quando inicia a máquina virtual - e esta usa a informação para controlar a passagem do tempo.

Mas... e quando o host possui uma CPU que abaixa o clock em situações de pouca carga? O que acontece? Daí vemos a cena clássica do "relógio movido a jato". Um relógio que marca três minutos a cada um passado não é incomum. Isso ocorre porque a máquina virtual não sabe (culpem o VMware nesta) que o host baixou o clock. Ela simplesmente passa a ver os ciclos passarem devagar demais - e acha que está perdendo eles (uma situação comum em sobrecarga). Para compensar isso o relógio é adiantado, recuperando os ticks "perdidos". Como eles não foram perdidos de fato... temos uma máquina virtual com um relógio apressadinho.

Existem duas maneiras de se resolver isso: a grosseira e a educadinha.

A grosseira: elimine a capacidade do host variar o clock. Entre no BIOS e desabilite as capacidades de seu processador. Nos AMD, por exemplo, isso significa desabilitar o "Cool and Quiet". Não é bonito, mas funciona.

A educadinha: Explique para seu servidor VMware que seu host possui um clock variável, e diga a ele qual o clock máximo da máquina. Para tal basta incluir as seguintes linhas no seu arquivo de configuração do VMware:

Para uma CPU com clock máximo de 2,2 GHz:

"host.cpukHz = 2200000
host.noTSC = TRUE
ptsc.noTSC = TRUE"

Para uma CPU com clock máximo de 3,0 GHz:

"host.cpukHz = 3000000
host.noTSC = TRUE
ptsc.noTSC = TRUE"


Ou seja: a frequência em KHz da CPU mais as duas linhas que indicam o modo a ser utilizado para se manter os clocks síncronos.

Agora você deve ser capaz de usar o Cool and Quiet com seu VMware sem que suas máquinas virtuais entrem no túnel do tempo. :)

2 comentários:

Anônimo disse...

Amigo, onde fica esse arquivo de configuração do vmware no linux?

Marcelo Rodrigues disse...

É o arquivo de configuração geral do servidor VMware. Costuma ficar em

/etc/vmware

[]s

Pesquise a Internet