Habe ich recht, kann ich den Swap für den Produktionsserver ausschalten?
Haben Sie immer einen Swap-Platz.
Ich habe einmal versucht, einen Produktionsserver ohne Swap zu betreiben, und ungefähr eine Woche später, nach einem Wordpress-Update, begann PHP, weit mehr RAM zu verbrauchen, als wir vorgesehen hatten. Wenn Ihnen der Arbeitsspeicher ausgeht und Sie Swap aktiviert haben, verlangsamen sich die Vorgänge (manchmal sehr, manchmal ein bisschen, je nachdem, was dort hineingeschoben wird), aber Sie können sich anmelden, das Problem finden und versuchen, es zu beheben es.
Wenn Ihnen der Arbeitsspeicher ausgeht und Sie keinen Swap haben, sterben die Prozesse, die Dinge blockieren und die meiste Zeit ist ein Neustart Ihre einzige Option. Aber bis Sie diesen Neustart durchführen, werden die Dinge wahrscheinlich zusammenbrechen.
In meiner Welt ist gebrochen viel schlimmer als langsam.
Wenn Sie feststellen, dass Ihr System ständig große Teile des Austauschs verwendet ( einige werden sehr oft verwendet , um alte zwischengespeicherte Daten zu entfernen), haben Sie natürlich ein Problem ("RAM bitte einfügen"), aber Sie haben es als ein sicherheitsnetz wird auf jeden fall empfohlen.
Als Antwort auf den Kommentar von SpamapS:
In der Welt der "erfolgreichen Websites" gibt es Hot-Failover, Load-Balancing und andere Tools, mit denen ein Computer explodieren kann und keine Auswirkungen auf den Rest der Website hat. Das kostet aber viel Geld. Redundante Hardware ist für die meisten Sites nicht wirtschaftlich, selbst wenn sie Geld einbringen.
Ich stimme Ihrem Kommentar zur Verfügbarkeit überhaupt nicht zu. In einem herkömmlichen E-Commerce-System können Benutzer, die Ihre Website nicht sehen können, keine Produkte bei Ihnen kaufen. Dies ist nicht nur E-Commerce, alle Online-Handelsinteressen nehmen viel mehr Schaden, wenn Sie für irgendeine Art von Periode nicht verfügbar sind. Ich weiß, weil ich Websites und Services für Unternehmen hoste und meine eigenen Websites betreibe. Langsam = mürrisch, aber niedergeschlagen = wütend. Auch wenn Sie jeweils nur eine Minute lang ausfallen und ein Benutzer mehrmals die Meldung "Wartungsbedürftig" sieht, geht er davon aus, dass Sie die Website nicht auf dem neuesten Stand halten können.
Ein langsamer Server ist weniger als ideal, aber Swap kann nicht immer ausgeführt werden. Es ist ein letzter Ausweg, um zuzulassen, dass Dinge weiterlaufen, während Sie sie reparieren.
Sie gehen auch davon aus, dass nur ein Dienst auf dem Computer ausgeführt wird. Auch dies könnte der Fall sein, wenn Sie Megabucks haben, um alles aufzuteilen, aber in der realen Welt werden die Dinge zusammengewürfelt. Mehrere Websites, SSH-Daemons, FTP-Server, E-Mail-Server usw. Ein in Swap ausgetretener Prozess hat möglicherweise nicht einmal Auswirkungen auf einen anderen Dienst. Ohne Swap hat alles die gleiche Chance auf sofortige, zufällige Beendigung. Sie haben keine Kontrolle darüber.
Natürlich ist Tausch nicht die einzige Antwort. Sie müssen überwacht werden, um benachrichtigt zu werden, wenn Sie nicht mehr im RAM sind, aber für die meisten Menschen ist es nicht die Lösung, nur den Stecker zu ziehen und neu zu starten. Ich bin mir sicher, dass dies für jede multinationale Website funktioniert, für die Sie verantwortlich sind, aber für uns Sterbliche (die den größten Teil des Internets ausmachen), das ist kommerzieller Selbstmord.
Ich muss mit Swap auf Produktionsservern nicht einverstanden sein.
Nach meiner Erfahrung macht der Austausch von Rotationsplatten Ihr System weniger vorhersehbar und anfälliger für den Ausfall des gesamten Systems. Ein beliebter Server mit hoher Auslastung, der alles mit einer lokalen langsamen Festplatte macht, wird schnell zu etwas Schlimmerem als einem Ausfallzustand. Die Antwortzeiten steigen auf das 100-fache ihres normalen Niveaus, und einfache Dinge wie das Anmelden über die Konsole oder ssh können Minuten dauern.
SSD-Tausch ist ein Sonderfall und würde zumindest die Suchzeitverzögerung beseitigen, die normalerweise das System umbringt. Da die Schreibvorgänge jedoch immer noch langsam sind, müssen Sie immer noch lange warten, bis Sie sich von einem außer Kontrolle geratenen Prozess erholt haben.
Ohne Swap bricht Ihr LAMP-Server einfach Prozesse ab, um RAM freizugeben. Eine ordnungsgemäße Überwachung sollte Sie darauf aufmerksam machen und Server aus der Produktion entfernen, wenn kritische Prozesse beendet werden. Der schlimmste Fall ist, dass alle Anmeldemethoden deaktiviert sind und Sie einen Hard-Reset / Power-Cycle durchführen müssen. Dieser schlimmste Fall ist bei einer außer Kontrolle geratenen Wechselmaschine immer noch genauso wahrscheinlich, aber weitaus schwerer zu erkennen.
Wenn Sie PHP verwenden, aktivieren Sie die Speicherbeschränkungen und überwachen Sie Ihre Protokolle auf Fehler. Hier ist ein Trick: Setzen Sie das Limit auf Ihrem Entwickler-Server niedriger als in der Produktion. Wenn Sie mod_php unter Apache verwenden, setzen Sie MaxRequestsPerChild auf ein paar Tausend, damit httpd sterben, bevor sie mit der Zeit zu groß werden. Überwachen Sie vor allem die Speichernutzung! Oft schleicht sich der Arbeitsspeicher im Laufe der Zeit zusammen und Sie müssen nur regelmäßig einen undichten Dienst neu starten, während Sie das Problem debuggen.
quelle
Swap Space wird verwendet, wenn Ihr System feststellt, dass für aktive Prozesse physischer Speicher benötigt wird und nicht genügend physischer Speicher zur Verfügung steht. Wenn das System mehr Speicherressourcen oder Speicherplatz benötigt, werden inaktive Seiten im physischen Speicher in den Auslagerungsspeicher verschoben, um diesen physischen Speicher für andere Zwecke freizugeben.
Diese Situation tritt im Server häufig auf.
ein). Ein nicht optimiertes Skript kann viel Speicher
beanspruchen. B). Skripte wie Backup verbrauchen immer sehr viel Speicher.
C). dichter Verkehr
Es ist also eine gute Praxis, etwas Swap-Platz zu haben.
Weitere Details: https://help.ubuntu.com/community/SwapFaq
quelle
Durch die Verwendung von Swap erhalten Sie einen zusätzlichen Schutz gegen Serverinstabilität. Es kann durchaus vorkommen, dass der Arbeitsspeicher knapp wird und auf Servern ohne Auslagerungen ein Absturz zu erwarten ist.
Ich bin jetzt wahrscheinlich in der Minderheit, wenn ich sage, es macht immer noch Sinn, wie früher empfohlen, doppelt so viel Swap zu haben, wie Sie über Hauptspeicher verfügen. Auch auf einem System mit 96 GB RAM.
Es kostet nicht viel und wenn Sie es eines Tages brauchen, werden Sie froh sein, dass Sie es haben. Der Grund für die Aktivierung des Austauschs ist nur eine sehr einfache Kosten-Nutzen-Analyse. Tu es! :-)
quelle
Ich möchte Oli für die schöne - ich weiß alt - Antwort danken. Ich finde, Partitionierung ist ein immer grünes Thema! Ich stimme voll und ganz der Zeile von Olis Post zu und ich möchte dieses - natürlich verbesserungsfähige - Skript teilen, das ich verwende, um die Auslagerungsnutzung meiner Server zu überwachen.
Ich konfiguriere Server und Dienste immer so, dass sie überhaupt nicht getauscht werden können. Wenn es soweit ist, stellen Sie sicher, dass entweder etwas schief geht oder bestenfalls etwas über Ihre ursprünglichen Pläne hinausgeht.
Ich schreibe dieses Skript jede halbe Stunde in der Produktionsumgebung. Es wird mir eine Benachrichtigung gesendet, wenn Swap usage! = 0k ist. Ich werde in der Lage sein, das Problem in den meisten Fällen umgehend zu untersuchen bzw. entsprechende Maßnahmen zu ergreifen. bevor es wirklich schief geht .
Erwartet, dass Sie Folgendes haben: bash, top, echo, awk und einen funktionierenden E-Mail-Befehl, ohne Überprüfungen durchzuführen.
Ich hoffe, das hilft.
quelle