Вы можете сделать так, чтобы Ваш инструмент для бенчмаркинга выбирал новую версию программы и тестовые данные по 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 есть забавный способ освобождения памяти (это как «не освобождай, пока» кому-то это понадобится). Некоторые вещи кэшируются. Чтобы быть уверенным, вам придется перезагружать тестовые машины после каждого сеанса тестирования.