Puis-je «accélérer» une machine virtuelle pour émuler le passage du temps?

9

Je voudrais mettre une machine virtuelle en «avance rapide» afin que je puisse voir plusieurs jours (ou semaines ou mois) de journaux et de fichiers temporaires s'accumuler et les analyser.

Est-ce possible avec virtualbox et ubuntu 12.04 VM?

Dean plutôt
la source
Je doute que ce soit possible :-(
stommestack
1
Ouvrez simplement l'ordinateur sur Internet et regardez les journaux se remplir et vos cheveux blanchir.
Paulo Almeida

Réponses:

2

Apparemment, cela peut être fait en jouant avec les jiffies dans le noyau, en ajoutant un rapport d'accélération. Il y a un document avec une présentation sur un test rapide de 10 ans . Cela se résume à ceci:

Ajoutez un paramètre à Kconfig (SPEEDUP_RATIO, ~ 1-1000), modifiez do_timer ():

 void do_timer(...) {
        jiffies_64 = jiffies_64 + speedup_ratio;
    }

Enfin, contrôlez le ratio via procfs ( echo 100 > /proc/accel). Il a ensuite eu beaucoup de timeouts au démarrage et a dû ajuster tous les timeouts du noyau (timeout * speedup_ratio). Il dit que la plupart de ces valeurs peuvent être trouvées avec grep jiffies, mais le «plus» signifie que cela peut impliquer quelques essais et erreurs.

Aussi, selon man 7 time: "La taille d'un jiffy est déterminée par la valeur de la constante de noyau HZ". Il est configurable, mais ne prend que les valeurs 100, 250, 300 et 1000.

EDIT : Si des sauts de temps sont acceptables, libfaketime peut être une alternative beaucoup plus simple. Mais je ne sais pas comment le logiciel de journalisation traitera cela.

Paulo Almeida
la source