
Ich führe Geschwindigkeitstests zwischen verschiedenen Versionen derselben Anwendung durch. Ich möchte jeder Anwendung einen festen Satz von CPUs zuweisen können. Beispielsweise möchte ich die Anwendung auf genau zwei CPUs und nicht mehr ausführen. Außerdem möchte ich, dass diese beiden CPUs exklusiv für diesen Prozess sind, damit keine anderen Prozesse CPU-Zeit „stehlen“ und das Testergebnis verringern können.
Gibt es eine Möglichkeit, dies unter Linux zu tun? Ich habe von Cgroups, Containern und Docker gehört. Werden diese hilfreich sein? Und welcher Ansatz ist der einfachste (nicht unbedingt der benutzerfreundlichste) und welcher gibt mir die größte Kontrolle?
Außerdem mache ich mir ein wenig Sorgen wegen Hyper-Threading. Wenn ich diesem Testprozess eine einzelne logische CPU zuweise und ein anderer Prozess während des Tests Hyper-Threading verwendet, verschlechtert das dann nicht das Testergebnis? Ich müsste dann auch die CPUs nach physischen CPUs trennen.