Wir haben Linux-System ohne Swap eingebettet.
Derzeit müssen wir einen Alarm auslösen, wenn die Speichernutzung% über einen Threashold steigt. Und starten Sie neu, wenn die Speichernutzung% über einen (höheren) Schwellenwert steigt.
Warum wir das tun möchten: Wenn ein Programm ausläuft, können wir einen Sicherheitsneustart durchführen, bevor der Kernel unsere Prozesse beendet (was zu Datenbeschädigung oder Nichtverfügbarkeit führen kann).
Aber wir haben ein Problem:
Wie zählt man die Speichernutzung in%, die für unseren Zweck verwendet werden kann?
Wir haben versucht, die Speichernutzung mithilfe der Werte von / proc / meminfo zu zählen:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Ohne Erfolg:
(MemTotal - MemFree)
ist nicht verwendbar, da es beispielsweise Caches enthält.
(MemTotal - MemFree - Buffers - Cached)
ignorierte den Effekt von Inactive
. Es gibt also auch zu große Werte für die Speichernutzung.
(MemTotal - MemFree - Buffers - Cached - Inactive)
ist unbrauchbar, da das Ergebnis negativ sein kann.
Nennen Sie dies als alert.sh und führen Sie den folgenden Befehl aus:
chmod +x alert.sh
Konfigurieren Sie einen Cron, um dieses Skript alle 10 Minuten auszuführen
Stellen Sie sicher, dass Sie '512' durch den Gesamtspeicher Ihres Servers in MB und '[email protected]' durch die tatsächliche E-Mail-Adresse ersetzen. Dies sendet eine E-Mail-Benachrichtigung, wenn die Speichernutzung 95% überschreitet, und startet den Dienst "Dienstname" neu, wenn er 90% erreicht.
quelle
Sie können ein Shell-Skript in cron mit dem Befehl free verwenden, um den Speicher zu überwachen und gemäß seinen Werten zu handeln. Zum Überwachen des RAM-Speichers:
Anstatt die Ausgabe zu wiederholen, können Sie die Werte bis zu den gewünschten Grenzwerten bewerten und per E-Mail versenden, neu starten oder eine beliebige Aktion ausführen:
Dann fügen Sie es crontab hinzu, um es in den gewünschten Intervallen auszuführen.
quelle
Ein weiteres nützliches Dienstprogramm aus dem sysstat-Paket ist sar.
Verwenden Sie für Speicherinformationen:
Ich könnte definitiv mehr RAM für diese Box verwenden.
quelle