Was erachtet ihr als ein sinnvolles Hardware Minimum?

Ich habe gerade sehr überraschte Kunden gesehen, als ich gesagt habe, dass ich einen Datenbankserver mit 8 (echten) Prozessoren und 16GB als das Minimum ansehe um produktiv eine Datenbank zu betreiben.

Im konkreten Fall ab, wurde vorgeschlagen in der Microsoft Azure Cloud Postgres mit 2 CPU + 4GB zu provisionieren.

Die dazu gehörende Anwendung hat ca. 500 gleichzeitige Benutzer, 600 Tabellen und ist rund 20GB groß. 60-70% der Abfrage sind eher “OLTP artig” (=Zugriff über PK). Schreib/Lesezugriffe sind bunt gemischt. Der Rest sind Abfragen die Tabellen mit zig-Millionen Datensätze joinen, filtern und sortieren.

Würde mich mal interessieren was ihr so als Minimum anseht?

4GB und 2 CPU cores ist wahrlich eher schwach. Aber wenn die SQL-Statements kurz sind und die Platte schnell genug, wer weiß? Bei einer virtualisierten Umgebung kann man ja einfach die Hardware verstärken, wenn sie sich als zu schwach erweist.

Bei OLTP ist auch sehr wichtig, daß die Disk schnell und leistungsfähig ist.

Ich würde versuchen heraauszukriegen, wie lange die Statements und die Transaktionen dauern werden und wie viele es pro Sekunde geben wird. Mit dieser Information könnte man den Bedarf vielleicht besser abschätzen.

Danke für die Antwort. Tatsächlich waren die meisten Abfragen “schnell genug”. Nur die komplexen halt nicht.

Letztendlich hatte der Kunde kein Problem damit, eine größere Instanz beim Cloud-Provider zu konfigurieren. Ich war trotzdem überrascht, dass meine Aussage “überrascht” hat.

Die Expertise eines “Kunden” ist ja beliebig. Man sieht ein Cloudangebot, das nicht mal das kleinste ist und dann nimmt man halt das zweit kleinste, Hauptsache günstig? Naja, Spekulation.
Ebenso spekulativ ist m.E. eine Einschätzung hier anhand der Angaben.
Bei schnell gegoogelten 10 oder 30 Euro pro Monat, ist die Diskussion hier eigentlich schon zu teuer oder?

Der OLTP Teil geht sehr wahrscheinlich auch ne Nummer kleiner oder zwei, so wie der Kunde sich das vorstellt. Komplexe Abfragen sind ohne Kenntnis des Datenmodells, Mengengerüsten schwer zu beurteilen. Ein paar davon in einem Reporting untergebracht, können so ein System quälen.
600 Tabellen lassen zumindest auf eine höhere Relationstiefe spekulieren, die halt kostet,wenn sie komplex abgefragt wird. Zunächst IO Ressourcen, im Idealfall dann “bloß” RAM, wenn vielfach die gleichen Daten abgefragt werden (1 Jahr, 1 Geschäftsjahr, …)
Erfahrungswerte bei Systemen wie hier genannt oder größer habe ich leider nur mit Oracle. Bei MS ist mein letzter Stand (wahrscheinlich veraltet), dass das Sperrverhalten nur zweitklassig ist. Das kommt natürlich bei (vielen) konkurrierenden Zugriffen irgendwann zum Tragen und wenn dann Lock Escalation zur besten OLTP Zeit einsetzt, ist ganz schnell die Luft raus. Gilt besonders bei ungünstiger Implementierung auf Clientseite oder abhängig vom Wesen des Modells auch bei der Verwaltung begrenzter Ressourcen (nicht Hardware, sondern Daten, z.B. der Verkauf von Werbeminuten im AnalogTV ist etwas anderes als eine Chatanwendung, die nichts beschränktes anbietet und einfach immer nur stumpf Daten anfügt). Apropos Client: Ist das ein CS System oder Mehrschicht? DB- / User Sessions fressen auch etwas Brot.

Ich bin kein Freund der Cloud. Wer meint, damit etwas zu sparen und andere Risiken vernachlässigen kann, dafür Flexibilität braucht, … soll es tun und das geringe Risiko eingehen, nachkaufen zu müssen. Bei eigener Hardware wäre die Frage 16 oder 4 oder 32 GB RAM ziemlich stark zu vernachlässigen.

Man könnte sich natürlich fragen, ob man 500 Mitarbeiter x Monatsgehalt mit einem System beschäftigen möchte, das so gering dimensioniert ist, dass sich Wartezeiten in der Bedienung ergeben und wie sich das gegen die Spannweite der Miet- oder Anschaffungskosten für (virtuelle) Hardware rechnet.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.