Dieser Beitrag zeigt, wie Sie die Swap-Nutzung jedes Prozesses überprüfen können, und antwortet auf „Woher weiß ich, welcher Prozess den größten Swap-Speicherplatz verbrauchen würde?“
Für alle Kernel
Die Swap-Nutzung wird als „Swap“ angezeigt ”-Spalten in /proc/[PID]/smaps . Dies zeigt die ausgelagerte Speichergröße der einzelnen Speicherbereiche an, daher zeigt die Summe aller dieser Werte die gesamte Auslagerungsnutzung des Prozesses.
Das folgende einfache Skript berechnet beispielsweise die gesamte Swap-Nutzung des Prozesses mit PID =1027:
# echo $((`grep Swap /proc/1027/smaps | awk '{ print $2; }' | tr '\n' '+'`0))
Für UEK2(2.6.39) oder spätere Kernel
Es ist einfacher, die Swap-Nutzung eines bestimmten Prozesses zu überprüfen, aktivieren Sie einfach „VmSwap ”-Spalte in /proc/[PID]/status . Dies gibt die Gesamtnutzung des Auslagerungsbereichs als einen Wert an. Diese Spalte existiert nicht in /proc/[PID]/status mit Kernel <2.6.39. Führen Sie zum Beispiel zum Sortieren von Prozessen mit der Swap-Nutzung von größeren ein Skript unten aus:
# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | more
Der in diesem Beitrag angezeigte/berechnete Wert gibt keine genaue Größe des verwendeten Auslagerungsspeichers an, sondern nur eine grobe ungefähre Größe. Einige (wie die gemeinsam genutzte Bibliothek) könnten doppelt gezählt werden, und andere (wie der Auslagerungs-Cache) werden nicht wirklich ausgelagert.