So ermitteln Sie die CPU- und Speichernutzung pro Sitzung unter Linux

So ermitteln Sie die CPU- und Speichernutzung pro Sitzung unter Linux

Ich muss in Bash ein Skript ausführen, um den Prozentsatz der CPU- und Speichernutzung pro Sitzung in Linux zu berechnen.

Welche Standard-UNIX-Tools kann ich in meinem Skript verwenden, um diese Informationen zu erhalten?

ich habe das

ML_CPU=$(ps -e -o pcpu= | awk '{sum+=$1} END {print sum}') 

… aber ich kann den CPU-Prozentsatz für eine Sitzung nicht abrufen, beispielsweise für pts/1.

Antwort1

Das Analysieren der Ausgabe der folgenden Befehle sollte Ihnen das liefern, was Sie benötigen:

$ free
$ top -bn 1

Sehen Sie sich auch an cron, es ist eine Möglichkeit, Befehle in bestimmten Intervallen auszuführen. Sie müssen wahrscheinlich für jeden Benutzer eine Crontab erstellen, die die Statistiken für diese Sitzung protokolliert.


AKTUALISIEREN:

Ich bin nicht sicher, ob ich verstehe, was Sie hier wollen. Wenn Sie dieaktuellCPU % für jeden Punkt/TTY, versuchen Sie das folgende Skript. Wenn Sie diegesamtDie CPU- und MEM-Prozentsätze für die Sitzung eines Benutzers werden in Cron angezeigt.

Dies ist ein PERL-Skript, wenn SiebrauchenBASH, lass es mich wissen.

#!/usr/bin/perl -w
## Collect ps output
open(A, "ps xo pcpu,pmem,tty |");
my %stats;
while (<A>){
    ## Ignore 1st line
    next if $.==1;
    ## Remove new line character (\n)
    chomp;
    ## Get the CPU% and TTY
    /\s*(.+)\s(.+)\s(.+)$/;
    ## Add the CPU% ($1) and MEM% ($2) for each TTY ($3)
    $stats{$3}{CPU}+=$1;
    $stats{$3}{MEM}+=$2;
}
close(A);
## Sort output by CPU%. Use 'sort -nk 5' for MEM%
open(A, "| sort -nk 3");
## The keys of the %stats hash are the different
## TTYs (including '?'). Cycle through and print
foreach (keys(%stats)) {
    print A "$_\tCPU%: $stats{$_}{CPU}  \tMEM%: $stats{$_}{MEM}\n";
}

Auf meinem System erhalte ich:

$ ./cpu_percent.pl
pts/0   CPU%: 0     MEM%: 0
pts/2   CPU%: 0     MEM%: 0
pts/3   CPU%: 0     MEM%: 0
pts/4   CPU%: 0     MEM%: 0
pts/5   CPU%: 0     MEM%: 0
pts/7   CPU%: 0     MEM%: 0
pts/8   CPU%: 0     MEM%: 0
tty3    CPU%: 0.3   MEM%: 0
pts/6   CPU%: 0.8   MEM%: 0.5
pts/1   CPU%: 0.9   MEM%: 0.5
?   CPU%: 14.7      MEM%: 15.4

verwandte Informationen