Je nach Lizenzmodell.
Wenn pro CPU lizensiert wird, ist die Anzahl der Hosts wurscht
Du zahlst so oder so für jede CPU, die du nutzt.
Und wenn pro Gerät/Client/User Lizensiert wird, ist es ebenso wurscht.
Interessanter sind pro CPU Lizenzmodelle mit Beschränkungen in der Anzahl. Sowas wie beim MS SQL Server zum Beispiel. Wenn du pro CPU lizensieren musst, weil es die Umgebung verlangt, du aber laut MS minimum zwei CPU Lizenzen kaufen musst.
Unterm Strich hast du aber recht, die Lizenzkosten sind idR ein horender Kostenfaktor...
Wenn ich mir ansehe, das man für ne Enterprise Plus vSphere Lizenz pro CPU gut und gerne 5000€ hinlegt und dort oben drauf dann nochmal MS Windows DataCenter Editions kommen, liegt der Kostenfaktor pro Host bei gut und gerne dem, die die reine Hardware auch beträgt.
Man muss halt an der Stelle rechnen, was für einen mehr Sinn macht. Und vor allem, man muss gucken, was man überhaupt benötigt.
2x18 Core CPUs nutzen dir gar nix, wenn du nur ne Hand voll VMs betreibst, die gar keine CPU Last groß erzeugen.
Bei mir läufts aktuell hier so, ich hab vier Hosts zu je zwei CPUs mit je sechs Cores.
Das sind 48 Cores im Cluster.
Darauf laufen aktuell 127 VMs.
CPU Last im Tagesmittel liegt bei ~20%.
RAM Last (4x144GB) liegt bei guten 75%.
Ich bräuchte also nicht mehr CPU Power, da ist Luft ohne Ende, sondern ich brauch mehr RAM.
Und mehr RAM ist bei den Westmeres zwar machbar (mit 16GB Reg. Riegeln), aber bedarf nem komplett Austausch aller Riegel -> teuer.
Im nächsten Step werden es wohl sechs Hosts zu je einer CPU, gepaart mit 32GB Reg. Riegeln und 8x pro CPU und Host.
Intel würde also an mir nur noch sechs anstatt acht CPUs verkauft bekommen
Das Problem ist, das ein Programmierer nicht auf die Coreanzahl hin programmiert. Sondern er programmiert Multithreaded und kümmert sich dann, das möglichst viel davon gleichzeitig laufen kann.
Ob das vier, sechs, acht oder 256 Sachen sind, ist völlig nebensächlich. Er wird versuchen in seinem zeitlichen Rahmen das gleichzeitig laufen zu lassen, was geht.
Man kann aber unterm Strich eine Software, die permanent auf die Eingaben des Users wartet, und nur minimale Lastspitzen für einzelne Rechenschritte erzeugt, gar nicht auf xxx viele Threads hin gleichzeitig abarbeiten lassen.
Was bringt es dir? -> es hat keinen Effekt. Schau dir ein standard Officeprogramm an. Da hast du schlicht keine Volllast Szenarien dabei. Das Zeit kostet ist idR das, was der User nicht schnell genug hinbekommt. Das, was das Programm selbst rechnen muss, geht oftmals so fix von der Hand, das es gar keinen Sinn macht, noch breiter zu gehen, sofern es möglich wäre.
Oder auch bei Browsern der Fall, was will ich da mit multithreaded Auslegung? -> braucht kein Mensch, denn das, was den Browser langsam macht, ist der Speed der INet Anbindung. CPU Last erzeugt ein Browser nur minimal.
Solange die CPU so fix ist, das gefühlt 90% der täglichen Arbeit ohne Verzögerung ausführbar sind, dann ist da einfach mal keine Ambition mehr da, weiter zu machen. Der Effekt geht gegen Null.
Den Bereich, wo die CPU Leistung brauchst sind Poweranwendungen. Rendertools, Encodiertools usw. usf. -> da macht es Sinn. Aber da ist es eben auch gängiger Standard. Drück dir ne Quad Sockel Xeon E5-4xxxv2 Kiste zusammen und encodier Videos -> du wirst Volllast über alle CPUs haben und es wird entsprechend ansatzweise auch darüber schneller werden.