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.
#!/bin/bash
#this file is named loop_script.sh
for i in {1..5000}
do
echo "Welcome $i times"
done
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
patrickr@hostname:~$ bash loop_script.sh
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:
**sa -m**
24 0.09re 0.03cp 0avio 894k
root 22 0.07re 0.02cp 0avio 853k
patrickr 2 0.02re 0.01cp 0avio 1336k
**sa -u |grep patrickr**
patrickr 0.38 cpu 1336k mem 0 io bash
Nach der zweiten Runde als patrickr:
**sa -m**
30 0.09re 0.03cp 0avio 850k
root 27 0.07re 0.02cp 0avio 814k
patrickr 3 0.02re 0.01cp 0avio 1178k
**sa -u |grep patrickr**
patrickr 0.38 cpu 1336k mem 0 io bash
patrickr 0.35 cpu 1336k mem 0 io bash
patrickr 0.00 cpu 863k mem 0 io ls (I happened to also run ls at patrickr)
**sa -u**
The results returned 106 results for a total of 2.86cpu that averaged to 0.03cp
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).
Output Fields
cpu - sum of system and user time in cpu minutes
re - actual time in minutes
k - cpu-time averaged core usage, in 1k units
k*sec - cpu storage integral (kilo-core seconds)
u - user cpu time in cpu minutes
s - system time in cpu minutes
Eine gute Ressource, die Ihnen helfen wird, ist beginlinux.com (ursprünglicher Link hier ).