ベンチマーク ツールに新しいバージョンのプログラムとテストデータをhttpまたはその他の一般的なプロトコルでフェッチさせることができます。http を使用したくない場合は、ネットワーク化されたファイルシステムの使用を検討できます ( NFSとGlusterFSはいくつかの例です)。
私の見方では、単一の「マスター」サーバーでスクリプトを開始すると、5 つの bash プロセスが生成されます。それぞれがリモートの「スレーブ」サーバーにログインし、ベンチマーク ツールを実行します。ベンチマークツールは、新しいプログラムとデータをいくつかの(おそらく「マスター」)サーバーからフェッチして実行し、時間/メモリなどを測定してそれらの値を標準出力に返すため、sshはそれをマスターに返しますサーバーとそれはbashプロセスです。次に、bash セッションの出力をファイルにリダイレクトします。
testmaster.sh -> 5*(testnode.sh -> ssh
-> fetch_and_benchmark -> output -> (ssh) -> testnode.sh -> file)
testmaster.sh は、すべてのファイルがすでに存在するかどうかを毎秒確認し、結果を読み取って比較する必要があります。すべてが悪いように聞こえるかもしれませんが、私を信じてください。すべてを手動で行うのではなく、スクリプトを比較的簡単に作成できる方がよいでしょう。
すべてのボックスで同じ環境を使用していることの確認について... テスト ノードに誰も近づけず、何もしないでください。
仮想化は、テスト結果を予測できない方法で変更する可能性があるため、お勧めしません。仮想化されたマシンは、純粋なマシンほど高速になることはできず、単純に「20% 遅い」というわけではありません。はるかに遅いものもあれば、それほど遅くないものもあります。よろしければ仮想化やスナップショットを使ってくださいとのことですが、カーネルが異なる複数のノードでテストを行っているとおっしゃっていたので、真剣に考えているのではないでしょうか。
あ、もう一つ。Linux には面白い方法でメモリを解放する方法があります (誰かがそれを必要とするまで「解放しない」ようなものです)。キャッシュされるものもあります。確かに、テスト セッションごとにテスト マシンを再起動する必要があります。