Kann ich eine VM beschleunigen, um den Zeitablauf zu emulieren?

9

Ich möchte eine VM in den "Schnellvorlauf" versetzen, damit ich Protokolle und temporäre Dateien im Wert von mehreren Tagen (oder Wochen oder Monaten) erstellen und analysieren kann.

Ist das mit virtualbox & ubuntu 12.04 VM möglich?

Dean Rather
quelle
Ich bezweifle, dass es möglich ist :-(
Stommestack
1
Öffnen Sie einfach den Computer für das Internet und beobachten Sie, wie sich die Protokolle füllen und Ihre Haare weißer werden.
Paulo Almeida

Antworten:

2

Anscheinend kann dies durch Spielen mit den Jiffies im Kernel durch Hinzufügen eines Beschleunigungsverhältnisses erreicht werden. Es gibt ein Dokument mit einer Präsentation über einen schnellen 10-Jahres-Test . Es läuft darauf hinaus:

Fügen Sie Kconfig einen Parameter hinzu (SPEEDUP_RATIO, ~ 1-1000), und ändern Sie do_timer ():

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

Schließlich Kontrollverhältnis über procfs ( echo 100 > /proc/accel). Dann hatte er viele Zeitüberschreitungen beim Booten und musste alle Zeitüberschreitungen im Kernel anpassen (Zeitüberschreitung * speedup_ratio). Er sagt, dass die meisten dieser Werte mit gefunden werden können grep jiffies, aber das "meiste" bedeutet, dass es einige Versuche und Irrtümer beinhalten kann.

Außerdem laut man 7 time: "Die Größe eines Augenblicks wird durch den Wert der Kernelkonstante HZ bestimmt". Es ist konfigurierbar, nimmt jedoch nur die Werte 100, 250, 300 und 1000 an.

BEARBEITEN : Wenn Zeitsprünge akzeptabel sind, kann libfaketime eine viel einfachere Alternative sein. Aber ich weiß nicht, wie die Protokollierungssoftware damit umgehen wird.

Paulo Almeida
quelle