
Estoy realizando pruebas de velocidad entre diferentes versiones de la misma aplicación. Quiero poder asignar un conjunto fijo de CPU a cada aplicación. Por ejemplo, quiero ejecutar la aplicación exactamente en dos CPU y no más. También quiero que estos dos CPU sean exclusivos de este proceso para que ningún otro proceso pueda "robar" tiempo de CPU y reducir la puntuación de la prueba.
¿Hay alguna manera de hacer esto en Linux? He oído hablar de cgroups, contenedores y Docker. ¿Serán de alguna ayuda? Además, ¿qué enfoque es el más simple (no necesariamente el más fácil de usar) y cuál me da mayor control?
También estoy un poco preocupado por el hiperprocesamiento. Si asigno una única CPU lógica a este proceso de prueba y otro proceso tiene un hiperproceso durante la prueba, ¿no empeorará esto el resultado de la prueba? Entonces también necesitaría separar cpus por cpus físicos.