Vous pourriez faire votre outil de benchmarking chercher la nouvelle version du programme et les données de test sur http ou un autre protocole populaire. Si vous ne souhaitez pas utiliser http, vous pouvez envisager d'utiliser un système de fichiers en réseau (NFS et GlusterFS sont quelques exemples). De la façon dont je le vois, vous démarrez votre script sur un seul serveur «maître», puis il génère 5 processus bash. Chacun d'eux se connecterait à un serveur «esclave» distant et exécuterait un outil d'analyse comparative. L'outil d'analyse comparative récupère le nouveau programme et les données du serveur (peut-être 'maître') et l'exécute, en mesurant time/memory/etc et en renvoyant ces valeurs sur la sortie standard, de sorte que le ssh le renvoie au maître serveur et c'est le processus bash. Vous devez ensuite rediriger la sortie des sessions bash vers des fichiers. Testmaster.sh devra vérifier si tous les fichiers existent déjà. F.e. chaque seconde, puis lire et comparer les résultats. Cela peut sembler mauvais, mais croyez-moi, il vaudrait mieux que vous ne fassiez pas tout manuellement et que le script soit relativement facile à écrire. À propos de l'assurance Vous avez le même environnement sur toutes les boîtes ... Ne laissez personne s'approcher de vos noeuds de test et n'y faites rien.
Je ne conseillerais pas la virtualisation, car cela modifierait Vos résultats de tests d'une manière que vous ne pouvez pas prédire. La machine virtualisée ne peut pas être aussi rapide qu'une machine pure et ce n'est pas simplement "c'est 20% plus lent". Certaines choses sont beaucoup plus lentes, d'autres moins. Si cela ne vous dérange pas, utilisez la virtualisation et les instantanés, mais vous avez dit que vous testiez des choses sur plusieurs nœuds ayant chacun un noyau différent, donc j'imagine que vous le prenez très au sérieux.
Ah, encore une chose. Linux a une façon amusante de libérer de la mémoire (c'est comme «ne le libère pas jusqu'à ce que quelqu'un en ait besoin»). Certaines choses sont mises en cache. Pour être sûr, vous devrez redémarrer les machines de test après chaque session de test.