So sieht das Speicherdiagramm auf einem VPS aus, auf dem CentOS mit 512 MB RAM und nginx / php-fpm / mysqld ausgeführt wird, um (meist statische) Inhalte für ein paar tausend Besucher pro Tag bereitzustellen.
(das sind Tage auf der x-Achse)
Wie Sie sehen, ist es im Cache- und Pufferbereich ziemlich nervös. Der Speicher-Cache wird in unregelmäßigen Abständen geleert (dies schließt einen verantwortlichen Cron-Job aus). Es wird normalerweise, aber nicht immer, an dem Punkt gespült, an dem es nicht größer werden kann. Manchmal klart es fast vollständig auf, manchmal nur auf halber Strecke.
Ich versuche die Logik hinter diesen Säuberungen zu verstehen. Ich würde erwarten, dass Dateidaten viel länger zwischengespeichert werden und sehe keine anderen Programme, die mehr Speicher als gewöhnlich belegen, wenn der Speicher-Cache geleert wird.
Ist das normal oder fehlt mir etwas?
UPDATE: Ein Speicher-Upgrade scheint die Grafik stabilisiert zu haben. Immer noch kleine Tropfen zu sehen, aber nirgendwo so bedeutend wie vor dem Upgrade.
Antworten:
Könnte eine Menge Dinge sein. Möglicherweise verwendet eines der Programme, die Sie ausführen, gelegentlich und kurzzeitig viel RAM. Wenn dies wirklich Wochen auf der x-Achse sind, sollten Sie eine Abtastung mit einer viel höheren Auflösung durchführen (z. B. einmal pro Minute oder sogar in der Sekunde), um weitere Informationen darüber zu erhalten, was passiert, wenn der Cache gelöscht wird.
ps
und dietop
Ausgabe (einschließlich des Lastdurchschnitts) während dieser Zeit wäre ebenfalls nützlich.quelle
Ein möglicher Grund wäre, dass eine wachsende Datei, beispielsweise ein Protokoll, entfernt, komprimiert oder an eine andere Stelle gesendet wird, wenn sie eine bestimmte Größe erreicht.
In beiden Fällen wird die zwischengespeicherte Größe, möglicherweise die gesamte Größe, wenn in Ihrem Betriebssystem kein Speicherdruck vorhanden ist, aus dem Cache freigegeben, sobald die ursprüngliche Datei entfernt wird.
quelle