Kalkulation von neuen Servern

goto;

Erfahrenes Mitglied
Hallo zusammen,

in meiner Firma stehen wir kurz vor der nächsten Saison und nun soll geprüft werden, wie viele Server wir benötigen, um im Peak jede Anfrage bedienen zu können.
Ich möchte gern wissen, ob mein Herangehen an dieses Problem korrekt ist, oder ob ich etwas übersehen habe.

Gegeben:
Server: 30
Kerne/Server: 56
Load im Peak/Server: ~24,5
Erwartetes Volumen: Faktor x4,8

Gesucht:

Server: ?

Um nun die Anzahl der benötigten Server zu ermitteln, lege ich den Load aller Maschinen zunächst auf eine einzige Maschine um
24,5 Load * 30 Server = 735 Load

Da wir im Peak mit dem Faktor 4,8 rechnen, multipliziere ich den eben errechneten Load mit dem Faktor
735 Load * Faktor 4,8 = 3528 Load

Im Peak würden wir auf einer Maschine also einen Load von 3528 erwarten. Da wir aber "nur" 56 Kerne je Server haben können, dividiere ich den eben errechneten Peak-Load durch die Anzahl der physischen Kerne.
3528 Load / 56 Kerne/Server = 63 Server

Diese 63 Server würden nun aber mit einem Load von 56 betrachtet werden. Da wir aber nicht unbedingt jeden Kern vollkommen auslasten möchten, sollten wir uns hier wieder bei einem Load von 25 einpegeln.
63 Server / 56 Kerne * 25 Load (Target) = 141 Server

Ich komme also auf einen Wert von circa 141 Server.

Das erscheint mir viel, sehr viel sogar. Kann man das so überhaupt betrachten?

Danke!
 
Lösung
Hallo goto,
deine Rechnung ist richtig, aber der letzte Schritt mit dem Load von 25 erscheint etwas komisch ausformuliert. Aber lass uns das nochmal von vorne angehen, nur diesmal rechnen wir mit einer Grundeinheit (das vereinfacht alles). Als Grundeinheit nehmen wir CPU-Kerne bei 100% Auslastung.
Für 30 baugleiche Server mit jeweils 56 Kernen ergibt sich:
#Kerne_aktuell = 30 * 56 = 1'680
Aktuell liegt der maximale Load/Server bei 24,5, damit beträgt die Auslastung in Kernen:
Last_peak = 1'680 * 24,5 / 56 = 735
Im Moment laufen also während des Peaks 735 Kerne unter Volllast während 945 idlen (natürlich nur theoretisch, ein echtes System ist balanced). Anders ausgedrückt: Das System ist zu 24,5 / 56 = 43,75%...
Hallo goto,
deine Rechnung ist richtig, aber der letzte Schritt mit dem Load von 25 erscheint etwas komisch ausformuliert. Aber lass uns das nochmal von vorne angehen, nur diesmal rechnen wir mit einer Grundeinheit (das vereinfacht alles). Als Grundeinheit nehmen wir CPU-Kerne bei 100% Auslastung.
Für 30 baugleiche Server mit jeweils 56 Kernen ergibt sich:
#Kerne_aktuell = 30 * 56 = 1'680
Aktuell liegt der maximale Load/Server bei 24,5, damit beträgt die Auslastung in Kernen:
Last_peak = 1'680 * 24,5 / 56 = 735
Im Moment laufen also während des Peaks 735 Kerne unter Volllast während 945 idlen (natürlich nur theoretisch, ein echtes System ist balanced). Anders ausgedrückt: Das System ist zu 24,5 / 56 = 43,75% ausgelastet.

Du erwartest jetzt aber eine 4,8-fach höhere Last. Das wären dann 43,75% * 4,8 = 210% Gesamtlast auf dem System. Die logische Konsequenz wäre hier also die entsprechenden Ressourcen nachzukaufen. Das aktuelle System müsste im Faktor 210% = 2.1 skaliert werden. Das wären dann 2,1 * 1'680 Kerne = 3'528 Kerne was 3'528 / 56 = 63 Servern entsprechen würde.

Soweit alles richtig gerechnet. Fühlt sich auch richtig an, schließlich sind eure Server etwa zur Hälfte ausgelastet (könnten also doppelt so viel) und du rechnest mit etwa einer Vervierfachung der Last (und 1/2 * 4 = 2). Also würden wir eine grobe Verdopplung erwarten.

Aber: Du möchtest einen maximalen Load von 25. Die Last auf dem System liegt dann bei 25 / 56 = 44,6%, was bedeutet wir müssen die Kerne nochmal um 100% / 44,6% = 224% = 2,24 skalieren. Das ergibt dann 2,24 * 3'528 = 7'903 Kerne. Also 7'903 / 56 = 141,1 neue Server (runden wir auf 141).

Deine Rechnung ist also richtig. Das kannst du dir so vorstellen: Du willst den Load quasi behalten, rechnest aber mit einer Verfünffachung der Last. Also brauchst du etwa das 5-fache von 30, was 150 wäre.

Schwierige Entscheidung. Vielleicht ist es an der Zeit nach Möglichkeiten zu suchen die Last softwareseitig zu verringern?

Gruß Technipion
 
Lösung
Danke Technipion,

mit Deinem Ansatz klingt es für mich jetzt auch logischer.

Vielleicht ist es an der Zeit nach Möglichkeiten zu suchen die Last softwareseitig zu verringern?
Daran arbeiten wir bereits seit geraumer Zeit - und wahrscheinlich werden wir auch noch lange brauchen, bis wir die "historisch gewachsenen" Logiken optimiert haben.

Danke für Deine Hilfe!
 
Zurück