[ Gelöst ] Welcher Prozess belegt Speicher in SWAP?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

[ Gelöst ] Welcher Prozess belegt Speicher in SWAP?

Beitrag von Inkodiktus » 29.12.2014 23:24:30

Hallo zusammen! :)

Woran kann ich erkennen, dass ein Programm/Prozess Speicher in Swap belegt?
Wenn das überhaupt geht?

Viele Grüße!
Zuletzt geändert von Inkodiktus am 30.12.2014 13:47:04, insgesamt 1-mal geändert.
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

Benutzeravatar
TRex
Moderator
Beiträge: 8367
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Welcher Prozess belegt Speicher in SWAP?

Beitrag von TRex » 30.12.2014 00:28:32

Hier gibts ein nettes Script, das diese Infos aus /proc ermittelt:

http://northernmost.org/blog/find-out-w ... your-swap/
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Welcher Prozess belegt Speicher in SWAP?

Beitrag von Inkodiktus » 30.12.2014 13:46:47

TRex hat geschrieben:Hier gibts ein nettes Script, das diese Infos aus /proc ermittelt:

http://northernmost.org/blog/find-out-w ... your-swap/
Besten Dank! :THX:

Komischerweise zeigt er mehr als nur ein Prozess, welches ausgelagert wird.
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

wanne
Moderator
Beiträge: 7616
Registriert: 24.05.2010 12:39:42

Re: Welcher Prozess belegt Speicher in SWAP?

Beitrag von wanne » 30.12.2014 15:32:10

Inkodiktus hat geschrieben:Komischerweise zeigt er mehr als nur ein Prozess, welches ausgelagert wird.
Das ist nicht weiter verwnderlich. Wenn der RAM knapp wird, werden Halt Blöcke, die lange nicht mehr verwendet wurden in den SWAP verlagert. Da es wahrscheinlich in jedem Programm, das länger läuft Teile gibt, die praktisch nicht genutzt werden ist es recht logisch dass da Blöcke aus allen möglcihen Prozessen genommen werden.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: [ Gelöst ] Welcher Prozess belegt Speicher in SWAP?

Beitrag von Inkodiktus » 30.12.2014 22:00:30

Ich hätte nicht gedacht, dass ein übermäßiges suchen in xpdf den Speicher von 8 GB sprengen würde! :D
Wobei ich so ca. 1000 Zeichen eingegeben und zum Suchen abgeschickt habe. ^^
xpdf war dann auf 100% CPULast, habe leider dann nicht auf RAM geschaut. :)
Bzw. ist mir nicht aufgefallen, dass es voll wäre.

Frag nicht warum ich es gemacht habe :)
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [ Gelöst ] Welcher Prozess belegt Speicher in SWAP?

Beitrag von rendegast » 31.12.2014 11:44:17

Ich habe das Skript mal posix (let -> Arithm.Exp.) gemacht und beschleunigt

Code: Alles auswählen

#!/bin/sh
   
SUM=0
OVERALL=0
TMPf=$(tempfile)

for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]" | sort -V` ;   do
   PID=`echo $DIR | cut -d / -f 3`

   SUM=0
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`;   do
        SUM=$((SUM+SWAP))
    done

    [ "x$SUM" = "x0" -o "x$SUM" = "x" ] && continue
   PROGNAME=`readlink $DIR/exe`
   #PROGNAME=`awk '$1=="Name:" { print $2 }' $DIR/status 2>/dev/null`
    echo "PID=$PID\t- Swap used: $SUM\t- ($PROGNAME )"
    OVERALL=$((OVERALL+SUM))
done > $TMPf

cat $TMPf  | sort -n -k5
rm $TMPf
echo "Overall swap used: $OVERALL"
Das 'readlink' statt 'ps' bringt die Beschleunigung.
Der Test auf SUM, weil sonst häufig bei nicht beteiligten Prozessen wie Kernelprozessen durch den Bezug auf $PID/exe PROGNAME leer bleibt.
(Prozesse ohne swap-Belegung hier ohnehin uninteressant?)
(Der PROGNAME aus 'awk ... $DIR/status' als etwas langsamere Alternative)

Die Umstellung von PROGNAME erst nach dem SUM-Test bringt 0,1s.

Das tempfile, weil wenn das 'sort' direkt an das 'for' angeschlossen wird, seltsamerweise OVERALL verloren geht(?)

Bringt hier 3s -> 0.9s.
Ich habe noch eine Version, in der awk summiert, die dauert aber 0,2s länger.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten