Ich habe versucht, mithilfe der Prozessabrechnung den Überblick über verschiedene Benutzer und Websites zu behalten, auf denen Skripte ausgeführt werden, die in unserer Umgebung problematisch sind, anstatt zu versuchen, in regelmäßigen Abständen so etwas wie das Scraping von oben durchzuführen.
Unklar ist, welche Felder die verwendeten CPU-Sekunden / Minuten wirklich angeben. Die Handbuchseiten, die ich gelesen habe, besagen, dass die Spalte "CPU" für Sekunden gebrannt ist. Es wird jedoch auch die Spalte "CPU" mit -m angezeigt - und sie können unterschiedliche Summen anzeigen. Zum Beispiel:
Wenn ich das Flag -m benutze, bekomme ich
$sa -m | grep username
username 14944 65.53re 29.90cp 5308k
Wenn ich das Flag -u verwende und die Spalte für 'cpu' summiere, erhalte ich Folgendes:
sa -u |grep username|awk 'BEGIN{TOTAL=0}{TOTAL=TOTAL+$2}END{print TOTAL}'
1032.86
Kann mir jemand helfen, den Unterschied zwischen den Spalten "cp" und "cpu" in diesen beiden verschiedenen Modi zu verstehen?
Vielen Dank!
quelle
Antworten:
Lassen Sie mich anhand eines Beispiels erläutern, was Ihre obigen Ergebnisse zeigen:
Erstens: Ich habe ein Bash-Skript erstellt, das ich als Benutzer patrickr ausgeführt habe und das das System ausreichend belasten sollte, um wahrgenommen zu werden.
Zweitens: Ich habe acct deinstalliert und dann neu installiert, damit meine Dateien in / var / log / acct aktuell sind. Erstellen Sie eine Kopie der Datei / var / log / acct / pacct, damit Sie die Datei in Zukunft problemlos mit einer ordnungsgemäß formatierten Datei abschneiden können (Sie können die Datei nicht einfach löschen und neu erstellen - sa funktioniert dann nicht mehr ). Beachten Sie, dass diese Datei ein Protokoll aller Befehle im System ist. Soweit ich das beurteilen kann, gibt es keine Möglichkeit, Teile aus dem Protokoll basierend auf Zeiträumen abzurufen.
Drittens: Ich habe dieses Skript dann zweimal als patrickr ausgeführt
Ich gebe Ihnen die Ergebnisse und erkläre sie dann:
Lief als root (oder ein anderer Benutzer als patrickr) Nach der ersten Schleife als patrickr:
Nach der zweiten Runde als patrickr:
Folgendes sehen Sie:
sa -m zeigt Durchschnittswerte für alle Aktivitäten für diesen Server über die Zeit an. Diese Datei wird mit der Zeit größer, wenn mehr Befehle ausgeführt werden.
sa -u | grep patrickr zeigt die Summe der System- und Benutzerzeit in CPU-Minuten für bestimmte Befehle an.
Laufen: sa -u | grep patrickr | awk 'BEGIN {TOTAL = 0} {TOTAL = TOTAL + $ 2} END {print TOTAL}'
Gibt Ihnen eine kombinierte Summe für Benutzer Patrick, aber der Befehl sa-m gibt Ihnen tatsächlich Durchschnittswerte. Werfen Sie einen Blick auf die Speicherwerte, wenn Sie ein zweites Beispiel benötigen. Sie sind auch gemittelt.
Wenn ich die drei oben für patrickr, .35 + .37 + .0 aufgelisteten Ergebnisse addiere und durch 106 dividiere und auf das nächste Hundertstel runde, erhalte ich 0,01 cp.
Das Ergebnis von 0,01 cp ist die durchschnittliche Auslastung des Benutzers patrickr auf dem System im Vergleich zu der gesamten Auslastung des Systems ab dem Zeitpunkt der Installation der acct-Anwendung (dh seit die Datei / var / log / acct / pacct den Überblick behält).
Eine gute Ressource, die Ihnen helfen wird, ist beginlinux.com (ursprünglicher Link hier ).
quelle