Hallo zusammen!
Woran kann ich erkennen, dass ein Programm/Prozess Speicher in Swap belegt?
Wenn das überhaupt geht?
Viele Grüße!
[ Gelöst ] Welcher Prozess belegt Speicher in SWAP?
- 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?
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 : -)
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 : -)
Re: Welcher Prozess belegt Speicher in SWAP?
Hier gibts ein nettes Script, das diese Infos aus /proc ermittelt:
http://northernmost.org/blog/find-out-w ... your-swap/
http://northernmost.org/blog/find-out-w ... your-swap/
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
- 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?
Besten Dank!TRex hat geschrieben:Hier gibts ein nettes Script, das diese Infos aus /proc ermittelt:
http://northernmost.org/blog/find-out-w ... your-swap/
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 : -)
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 : -)
Re: Welcher Prozess belegt Speicher in SWAP?
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.Inkodiktus hat geschrieben:Komischerweise zeigt er mehr als nur ein Prozess, welches ausgelagert wird.
rot: Moderator wanne spricht, default: User wanne spricht.
- 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?
Ich hätte nicht gedacht, dass ein übermäßiges suchen in xpdf den Speicher von 8 GB sprengen würde!
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
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 : -)
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 : -)
Re: [ Gelöst ] Welcher Prozess belegt Speicher in SWAP?
Ich habe das Skript mal posix (let -> Arithm.Exp.) gemacht und beschleunigt
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.
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"
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")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")