it-swarm-ja.com

時間の経過をエミュレートするためにVM)を「スピードアップ」できますか?

VMを「早送り」に入れて、数日(または数週間、または数か月)分のログと一時ファイルが蓄積されて分析されるようにしたいと思います。

Virtualboxとubuntu12.04 VMでそれは可能ですか?

9
Dean Rather

どうやらそれは、スピードアップ率を追加することによって、カーネル内のジフィーで遊ぶことによって行うことができます。 10年間の簡単なテストに関するプレゼンテーション付きのドキュメント があります。それはこれに要約されます:

Kconfigにパラメーターを追加し(SPEEDUP_RATIO、〜1-1000)、do_timer()を変更します。

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

最後に、procfs(echo 100 > /proc/accel)を介して比率を制御します。次に、起動時に多くのタイムアウトが発生し、カーネル内のすべてのタイムアウトを調整する必要がありました(timeout * speedup_ratio)。これらの値のほとんどはgrep jiffiesで見つけることができると彼は言いますが、「ほとんど」は試行錯誤を伴う可能性があることを意味します。

また、man 7 timeによると:「Jiffyのサイズはカーネル定数HZの値によって決定されます」。構成可能ですが、値は100、250、300、および1000のみです。

[〜#〜] edit [〜#〜]:タイムリープが許容できる場合、 libfaketime ははるかに簡単な代替手段かもしれません。しかし、ロギングソフトウェアがそれをどのように処理するかはわかりません。

2
Paulo Almeida