Wie wählt man das richtige Hardware-Sizing für eine Applikation?
Generell sind Strom und Hardware-Bedarf die zwei Faktoren, über die Software zu Emissionen führt. Wir würden also gern beides senken, auch bei der Auslegung der Hardware. Man könnte meinen, beides ginge ohnehin Hand in Hand. Weniger Cores benötigen schließlich weniger Strom, oder etwa nicht? Leider ist es eben nicht so einfach.
Zwar gilt es im Allgemeinen, die Energy Proportionality zu beachten:
Höhere Serverauslastung führt zu geringerem Strombedarf pro Rechenleistung
Der Grund für diese Regel ist einfach: Ein Server verbraucht auch dann eine Menge Strom, wenn er nichts oder wenig tut. Der Stromverbrauch ist also gerade nicht proportional zur Rechenleistung.
Allerdings sollte man diese Regel nicht bis zum Maximum ausreizen. Denn auch folgendes gilt:
Zu wenig Hardware führt zu deutlich höherem Stromverbrauch
Darauf weist Srinivasan Rakhunathan hin. Er ist Senior Program Manager, Cloud Supply Chain Sustainability bei Microsoft. Ich kenne ihn aus der Working Group zu „Standards“ bei der GSF. Er schreibt hier über den Zielkonflikt zwischen Hardware-Nutzung und Stromverbrauch.
Er vergleicht Setups mit mehr oder weniger Cores und misst den Stromverbrauch. Es zeigt sich: Wenige Cores bedeuten unter Umständen, dass diese mit hoher Auslastung laufen. Dass kann zu Queuing führen, etwa von HTTP-Requests. Und damit zu viel höherem Stromverbrauch. Im gemessenen Beispiel entsteht bei 1 Core der 3-fache Stromverbrauch einer 4-Core-Auslegung.
Leider zeigt sich dieser Effekt nicht unbedingt bei Performance-Messungen: Im obigen Beispiel steigt die Response-Time bei 1 Core zwar deutlich an, sie liegt aber mit 0,58 Sekunden in einem Bereich, der für die meisten Anwendungen völlig ausreicht. Sie würde ein Entwickler-Team nicht motivieren, mehr Cores einzusetzen.
Lesson learned: Höhere Serverauslastung ist im Allgemeinen besser, zu hohe wird aber zum Problem. Es gilt, die richtige Balance zu finden.