Mein Server verfügt über 8 GB RAM und 8 GB für die Auslagerungsdatei. Ich habe speicherintensive Apps ausgeführt. Diese Apps haben Spitzenlasten, bei denen die Swap-Nutzung zunimmt. Es wird ungefähr 1 GIG Swap verwendet.
Ich habe einen anderen Server mit 4 GB RAM und 8 GB Swap und ähnlichen speicherintensiven Apps. Aber hier ist die Swap-Nutzung sehr vernachlässigbar. Rund 100 MB.
Ich habe mich gefragt, wie die genauen Bedingungen oder eine grobe Formel lauten, auf deren Grundlage Linux einen Prozessspeicher im RAM in die Auslagerungsdatei austauscht. Ich weiß, dass es auf dem Swapiness-Faktor basiert. Worauf basiert es noch? Dateigröße tauschen? Alle Hinweise auf die interne Dokumentation / den Quellcode von Linux kernal, die dies erklären, sind großartig.
quelle
swapoff -a && swapon -a
sollte verwendet werden, um diesen Swap-Speicherplatz freizugeben.Ausgehend von der Antwort von pfo kann ein Anbieter auch seine bereitgestellten Kernel (s) vorab anpassen, um den Austausch auf eine bestimmte Art und Weise zu handhaben. Auf einem Red Hat-System können Sie einen Großteil davon in /etc/sysctl.conf konfigurieren - Google-Einstellungen wie:
Durch sorgfältiges Anpassen des Systemaustauschs an die spezifischen Anforderungen Ihrer Anwendung können Sie möglicherweise die Swap-Nutzung auf diesem 8-GB-Computer reduzieren. Ich habe einen Hinweis in meinen Dateien, der für vm.swappiness besagt, dass "die Verwendung des Swap-Speichers auf Kernel 2.6.xx standardmäßig auf 60% eingestellt ist", aber den Link, in dem ich das gelesen habe, nicht gespeichert hat. Nehmen Sie ihn also mit einem Körnchen aus Salz. :) :)
quelle
Genau dieses Problem trat bei JBoss-App-Produktionsservern in AWS auf.
Ich würde sysctl -a beide Systeme unterscheiden.
1) Setzen Sie für Server vm.swappiness auf nahe 0. Dies bevorzugt, dass Inhalte gespeichert werden.
2) Aktivieren Sie eine kleine Auslagerungsdatei auf allen Servern, damit Sie die tatsächliche Speicherlast überwachen können. (Überprüfen Sie den verwendeten Swap%).
3) Überwachen Sie Seitenfehler (nFLT) mit Cacti oder ähnlichem.
4) Überprüfen Sie die Grenzen.
5) Abstimmung basierend auf messbarer App-Leistung.
quelle