Mehr RAM gegen mehr Server

9

Ich wurde kürzlich gefragt: "Wissen Sie, wann Sie sich für mehr RAM oder mehr Server entscheiden müssen?" (im Zusammenhang mit der Skalierung von Data Mining-Anwendungen).

Ich hatte keine Ahnung, wie kann ich mich entscheiden? Ich habe nur sehr geringe Kenntnisse über Architektur und Skalierung (mein Verständnis des Computerspeichers und der Funktionen eines Servers beschränkt sich auf die Grundlagen auf hoher Ebene). Tipps zum Erlernen dieser Dinge im Allgemeinen sind daher ebenfalls sehr willkommen.


quelle
3
Kann ich bitte beides haben?
Dirk Eddelbuettel
1
Mehr RAM in jedem Fall, den ich mir vorstellen kann ... (außer der Server ist maximal auf RAM)
jcolebrand
3
Wie bei den meisten Thigns Sysadmin. Die beste Antwort ist, wenn möglich, Daten auf einem Entwickler oder Produktionssystem zu sammeln und dann eine Entscheidung auf der Grundlage der von Ihnen gesammelten Daten zu treffen.
Zoredache
Die Frage, die Sie stellen, ist, ob Sie skalieren oder verkleinern möchten.
Micmcg
Die meisten Data Mining-Programme sind für einen Computer konzipiert. daher mehr RAM. Wenn Sie Mahout oder Parallel-R verwenden oder was haben Sie, dann mehr Server. Ich würde Amazon AWS-Server mieten, um zu experimentieren und die beste Kombination aus # Servern und RAM zu finden.
Neil McGuigan

Antworten:

8

"Wissen Sie, wann Sie sich für mehr RAM oder mehr Server entscheiden müssen?" (im Zusammenhang mit der Skalierung von Data Mining-Anwendungen).

Die Antwort ist, sobald Sie mir die Metriken für den betreffenden Server geben, werde ich Ihnen sagen, welche (oder ob es sich überhaupt lohnt, sie hinzuzufügen). Diese Art der Optimierung ist kein Voodoo (es sei denn, Sie verwenden Anwendungen ohne Instrumentierung und Server-Betriebssysteme ohne Instrumentierung - dann ist es Voodoo), sondern Wissenschaft. Messen Sie die Anwendung und den Server. Kurz gesagt, ermitteln Sie mithilfe der Überwachungsmetriken, wo der Leistungsengpass liegt, und fügen Sie weitere hinzu.

Jim B.
quelle
Nein, es ist immer noch Voodoo, aber du bist ein Hexendoktor! Mehr auf den Punkt .. Wie verwendet ein Neuling diese Antwort, um sein Problem zu lösen? Welche grundlegenden Metriken sollte er untersuchen und woher weiß er, welche Zahlen von Bedeutung sind? Holen Sie sich meinen Punkt ...
Tomjedrz
Diese Art erinnert mich an den alten Ballonwitz. officediversions.com/discover/modules/wfsection/…
tomjedrz
Die Antwort, welche grundlegenden Metriken von welchem ​​System abhängen. Die Frage ist so allgemein gehalten, dass es unmöglich ist, eine spezifischere Antwort als die Grundlagen (CPU, Speicher, Festplatte usw. und Anwendungsmonitore) zu geben. Angesichts des hypthetischen Neulings können sie einfach keine Antwort auf dieses Problem erhalten, da Sie zuerst wissen müssen, wie die fraglichen Server zu überwachen sind - und das wäre eine völlig separate Frage
Jim B
5

Bei der Verbesserung der Server- / Anwendungsleistung gibt es im Allgemeinen einiges an Voodoo (oder zumindest Versuch und Irrtum).

Die allgemeine Regel für die gestellte Frage lautet, zuerst den Speicher zu erhöhen, bis er nicht mehr erhöht werden kann, ODER bis mehr Speicher die Leistung nicht mehr verbessert. Da der Speicher relativ billig ist, kann es einfacher sein, den Speicher einfach zu maximieren. Wenn die Anwendung festplattenlastig ist, kann ein Upgrade auf Hochgeschwindigkeitslaufwerke oder Hochleistungscontroller einen Unterschied machen.

Die sehr allgemeine Natur der Frage lässt mich jedoch denken, dass es keine anderen Versuche gegeben hat, die Leistung zu verbessern. Ich bin damit einverstanden, dass Hardware billig ist, so dass es einfach genug ist, mehr Server auf ein Problem zu werfen. Ich würde aber auch sicherstellen, dass andere Wege beschritten wurden, insbesondere die Optimierung des Betriebssystems und der Datenbank. Manchmal können kleine Änderungen an der Datenbank, dem Betriebssystem oder sogar der Anwendungskonfiguration zu enormen Leistungsverbesserungen führen.

Suchen Sie auf dieser Website mit Ihrem spezifischen Betriebssystem, Ihrer Datenbank und Ihrer Anwendung, und Sie könnten Gold finden.

Tomjedrz
quelle
5

Als Unternehmensarchitekt habe ich mich fast täglich mit diesem Thema befasst. Vertikale oder horizontale Skalierung?

Was sind deine Bedürfnisse?

Müssen Sie mehr Benutzer unterstützen? Müssen Sie die Geschwindigkeit des Dienstes verbessern? Benötigen Sie beides? Benötigen Sie Hochverfügbarkeit 99.9999 oder können Ihre Benutzer Ausfallzeiten in Kauf nehmen?

Zu Beginn müssen Sie Leistungsmetriken auf dem aktuellen System erfassen. Anzahl der aktiven Benutzer, RAM- und CPU-Auslastung, Disc-E / A - Finden Sie heraus, wo Ihre Engpässe liegen.

Mögliche Lösungen basierend auf Problemen: Beginnen Sie mit der Optimierung der aktuellen Ressourcen. Wenn Ihre Anwendung datenbankgesteuert ist, optimieren Sie die Datenbank mit Abfrage- und Thread-Caches, Indizes usw. Wenn Sie einen Server für andere Anwendungen freigeben, sollten Sie den Wechsel zu einem dedizierten Server untersuchen. (Suchen Sie in der Virtualisierung nach weniger aktiven / kritischen Anwendungen, um dedizierte Ressourcen freizugeben.)

Aktuelle Maschinen sind voll ausgelastet, RAM und CPU stark ausgelastet, hohe Disc-E / A - Kosten für das Hinzufügen von RAM berechnen. Können Sie zu einer schnelleren Disc-E / A wechseln (RAID, SATA anstelle von ATA)?

Wenn Sie eine hohe Verfügbarkeit benötigen, müssen Sie wahrscheinlich trotzdem Hardware und Lastausgleich hinzufügen.

Ist es billiger, Hardware-Upgrades oder neue Server hinzuzufügen? Was passt zu den langfristigen Zielen und dem Wachstum?

Wann ist die beste Zeit für Ihre IT-Abteilung, um Geld auszugeben? Haben Sie jetzt Mittel oder möchten Sie die Ausgaben auf ein anderes Quartal / Jahr verschieben? Wenn es um Geld geht, optimieren Sie jetzt oder prüfen Sie, ob Sie Hardware von anderen Anwendungen freigeben können, um eine Lösung für den temporären Lastausgleich hinzuzufügen.

Haben Sie keine Angst, zahlreiche Lösungen zu erkunden. Anbieter möchten möglicherweise, dass Sie eine SAN-speicherorientierte Lösung mit Lastenausgleich kaufen, bei der ein neuer Server mit integriertem iSCSI RAID 10 für 10 Prozent der Kosten funktioniert.

Wenn Ihre CPU nach der Optimierung immer noch stark ausgelastet ist, müssen Sie Hardware hinzufügen / ersetzen. Wenn Ihre Disc-E / A der Engpass ist und Sie die Speichertechnologie nicht aktualisieren können, müssen Sie die Hardware ersetzen oder Netzwerkspeicher- / angeschlossene Speicherlösungen hinzufügen.

Leistungsmetriken erfassen. Optimieren, verbessern und erfassen Sie Metriken erneut. Dokumentieren Sie weiterhin Leistungssteigerungen / -abnahmen, damit Sie einen Bericht einreichen können, der dokumentiert, wie viel Sie ausgegeben haben und wie viel Leistungsgewinn sich daraus ergibt. Dies sind die möglichen Erfolgsgeschichten, die Administratoren zu Architekten, Architekten zu Projektmanagern und PMs zu oberen Führungskräften machen, wenn sie richtig gemacht werden.

linux911
quelle
2

Pagingst du Verwenden Sie den RAM zum Zwischenspeichern der Festplatte? Sind Sie CPU mit freiem RAM gebunden?

Wenn Sie Paging betreiben und / oder den RAM zum Zwischenspeichern verwenden können, erhalten Sie mehr RAM. Wenn Sie nicht auf RAM-Druck stoßen, ist es etwas anderes.

Will Hartung
quelle
2

RAM ist billig. Sie sollten dies immer zuerst bis zu dem Punkt tun, an dem Sie die wirtschaftlichste Menge haben (z. B. 4-GB-DIMMs sind unerschwinglich teuer, damit ich mich nicht darum kümmern würde).

Untersuchen Sie dann die Skalierung seitwärts (mehr Server). Betrachten Sie billige Consumer-Hardware im Vergleich zu teuren Serverteilen, erwarten Sie jedoch Fehler und bauen Sie Failover-Schätzungen in Ihre gesamte Verarbeitungskapazität ein.

Grundsätzlich machen Sie ein Google .

Oli
quelle
1

Welches Betriebssystem Sie verwenden, wie viel RAM es unterstützt und wie viel RAM Sie haben, sind ebenfalls Fragen. Wenn Sie sich an der Grenze eines 32-Bit-Betriebssystems befinden, hilft es Ihnen nicht, mehr RAM zu kaufen. Wenn Sie Windows verwenden, sind bestimmte SKUs auf bestimmte RAM-Mengen beschränkt, die nicht genau mit dem 32-Bit-Limit zusammenhängen.


quelle
1

Einige Leute scheinen zu denken, dass das Hinzufügen von RAM eine magische Lösung ist. Es hilft nur, wenn RAM der Engpass ist.

Rob Moir
quelle
Es ist keine "Magie", aber es ist relativ billig und meistens ein guter erster Versuch.
Tomjedrz
1
@ Tomjedrz: Ein guter erster Versuch, außer wenn es nicht ist. Es ist wirklich sehr einfach - machen wir "Systemadministration als Wissenschaft" und fügen einer Maschine RAM hinzu, nachdem wir Tests und Ressourcenüberwachung durchgeführt haben, die zeigen, dass sie benötigt wird, oder machen wir "Systemadministration als religiöser Kult" und fügen hinzu RAM zu einer Maschine, weil die religiösen Schriftrollen uns sagen, dass dies das richtige Gebet für einen Server ist, der etwas langsam ist? Persönlich bevorzuge ich den wissenschaftlichen Ansatz.
Rob Moir
0

Mehr RAM = mehr virtuelle Maschinen.

Also ich nehme an mehr RAM = mehr Server !!

JohnyD
quelle
1
Mehr virtuelle Maschine mehr Iops erforderlich, RAM ist nur eine von vielen Ressourcen, mit denen man spielen kann.
Tony Roth