Hier ist eine Möglichkeit, dies zu tun. Erzeugt VIELE Dateien, aber ich kann mir keine andere Möglichkeit vorstellen.
Wenn Sie nicht wissen, wann der Server ausgelastet ist, müssen Sie sysstat verwenden, um Ihre historischen Ressourcendaten zu erfassen.
Erster Weg: Verwenden Sie sysstat und sammeln Sie alle 5 Minuten Statistiken (ca. 8 MB pro Tag). Ihr Cron-Eintrag würde ungefähr wie 5 * * * * / usr / lib / sa / sa1
oder 5 * * * * / usr / lib64 / sa / sa1 aussehen
sysstat speichert bis zu einem Monat Daten. Sie können die Dateien jedoch immer kopieren und auch archivieren.
Sie würden den Befehl "sar" verwenden, um durch historische Daten zu blicken, um zu sehen, wann Ihr Server ausgelastet ist.
Jetzt, da Sie historische Daten auf Ihrem Server haben, müssen Sie auch die Prozessausgabe erfassen, damit Sie sehen können, was gerade läuft. Sie können dafür "ps" oder "top" verwenden
So können Sie alle 5 Minuten auch die Ausgabe von top und ps auxww erfassen, um alle laufenden Prozesse zu sehen. Ich würde zwei Subverben "toparchive" und "psarchive" erstellen und diese dann als meine Cron-Jobs einsetzen.
5 * * * * top -b -n 1 > /root/toparchive/top.`date +"%Y%m%d_%H%M%S"`
oder
5 * * * * ps auxww > /root/psarchive/ps.`date +"%Y%m%d_%H%M%S"`
(das werden viele Dateien sein, alternativ können Sie ein Skript erstellen, so dass Sie zusätzliche Unterverzeichnisse mit einem Datumsstempel haben, wie / root / toparchive / 20140701 /)
Sehen Sie sich jedoch im Allgemeinen Ihr sysstat an, und Sie können herausfinden, wann Ihr Server ausgelastet ist. Überprüfen Sie dann die entsprechende Top- oder ps-Ausgabe, die Sie erfasst haben, um festzustellen, was Ihren Speicherplatz beansprucht
Wenn der Prozess Speicher beansprucht, können Sie zusätzlich "pmap" und "pgrep" verwenden, um die aktuellen Prozesse und die tatsächliche Speicherauslastung anzuzeigen.