Sie könnten Ihr Benchmarking-Tool holen Sie die neue Version des Programms und die Testdaten über http oder ein anderes beliebtes Protokoll. Wenn Sie http nicht verwenden möchten, können Sie ein Netzwerk-Dateisystem (NFS und GlusterFS sind einige Beispiele) verwenden.
Die Art, wie ich es sehe, Sie würden Ihr Skript auf einem einzigen "Master" -Server starten und dann würde es 5 Bash-Prozesse hervorbringen. Jeder von ihnen loggte sich in einen Remote-Slave-Server ein und führte ein Benchmarking-Tool aus. Das Benchmarking-Tool würde das neue Programm und die Daten von einem Server (etwas "Master") holen und dann ausführen, Zeit/Speicher/etc messen und diese Werte auf der Standardausgabe zurückgeben, so dass der ssh es an den Master zurückgibt Server und es ist Bash-Prozess. Sie würden dann die Bash-Session-Ausgabe in Dateien umleiten.
testmaster.sh -> 5*(testnode.sh -> ssh
-> fetch_and_benchmark -> output -> (ssh) -> testnode.sh -> file)
testmaster.sh müsste überprüfen, ob alle Dateien bereits existieren f.e. jede Sekunde und dann lesen und vergleichen Sie die Ergebnisse. Es mag alles schlecht klingen, aber vertrau mir, es wäre besser, wenn Du nicht alles manuell machst und das Skript relativ einfach zu schreiben ist.
Sicherstellen, dass auf allen Boxen die gleiche Umgebung vorhanden ist ... Lassen Sie niemanden in der Nähe Ihrer Testknoten liegen und tun Sie nichts darauf.
Ich würde keine Virtualisierung empfehlen, da dies Ihre Testergebnisse in einer Weise verändern würde, die Sie nicht vorhersagen können. Virtualisierte Maschinen können nicht so schnell sein wie reine und es ist nicht einfach "es ist 20% langsamer". Manche Dinge sind viel langsamer, manche nicht so viel. Wenn Sie nichts dagegen haben, verwenden Sie Virtualisierung und Snapshots, aber Sie sagten, Sie testen Dinge auf mehreren Knoten mit jeweils einem anderen Kernel, also stelle ich mir vor, Sie nehmen es sehr ernst.
Ah, noch eine Sache. Linux hat eine lustige Art, Speicher freizugeben (es ist wie "mach es nicht frei, bis es jemand braucht"). Manche Dinge werden zwischengespeichert. Um sicher zu sein, müssten Sie die Testmaschinen nach jeder Testsitzung neu starten.