Tal y como advertí en la entrada anterior aquí va el primero…
Si has intalado VMware en Linux te habrás dado cuenta que el reloj de las máquinas virtuales va más perdido que Adán en el día de la madre. Se atrasa o se adelanta que da gusto y por lo visto esto a los desarrolladores no les gusta por no se qué de los unos logs… XD
Tienes una posible solución por aquí. No voy a entrar a comentarla porque creo que está bastante claro y, sobre todo, porque a mi no me funcionó.
Pero lo que si me funcionó es esto otro. Resulta que las máquinas que tenemos utilizan la tecnología Intel SpeedStep (AMD tiene algo parecido llamado PowerNow o Cool’n'Quiet). Estas tecnologías lo que hacen es modificar la frecuencia del procesador según la carga de trabajo. ¿Y cómo sé yo si mi procesador gasta de esto? Pues yo lo averigüé cotilleando el fichero /proc/cpuinfo con la máquina host “en reposo”:
[root@localhost ~]# head /proc/cpuinfo
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping: 11
cpu MHz: 1596.000
cache size: 4096 KB
physical id: 0
siblings: 4
[root@localhost ~]#
Si te fijas un poco el nombre del procesador dice que es a 2,4 GHz pero la velocidad real es de 1,6. Sospechoso, sospechoso, …
Para solucionarlo sólo tenemos que editar el /etc/vmware/config del host y añadir las siguientes líneas:
host.cpukHz = XXXXXXX
host.noTSC = TRUE
ptsc.noTSC = TRUE
Sustituyendo las equis por la velocidad máxima de tu procesador en kilohercios (2400000 en mi caso).
Reiniciamos el servicio de vmware y listo.
Por último asegúrate de tener desactivado en las máquinas virtuales cualquier software de sincronización horaria tipo ntpd.
Actualizado: También existe una solución si la máquina host es un Windows. Ahora mismo la estoy probando. Si funciona os contaré.
Más actualizado: Probado y me funciona en Windows.