簡體   English   中英

我怎么知道哪個進程使用swap?

[英]How can I know which process is using swap?

有很多可用的內存(大約4G)但在我的軟呢帽中使用了交換(200 + M)。

我想知道哪個進程使用swap。 我怎么知道呢

pstop僅顯示內存使用情況。

提前致謝。

改進cyberciti.biz命令以顯示更簡潔的答案:

(echo "COMM PID SWAP"; for file in /proc/*/status ; do awk '/^Pid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | grep -wv "0 kB" | sort -k 3 -n -r) | column -t

示例輸出:

COMM             PID    SWAP  
dockerd          662    2736  kB
skypeforlinux    26865  1320  kB
NetworkManager   303    1112  kB
slim             392    1028  kB
redis-server     350    204   kB

這里

[a] / proc / meminfo - 此文件報告有關系統內存使用情況的統計信息。 它可以免費用於報告系統上的空閑和已用內存(物理內存和交換內存)以及內核使用的共享內存和緩沖區。 您還可以使用free,vmstat和其他工具查找相同的信息。

[b] / proc / $ {PID} / smaps,/ proc / $ {PID} / status和/ proc / $ {PID} / stat :使用這些文件查找有關每個進程使用的內存,頁面和交換的信息使用它的PID。

[c] smem - 此命令(python腳本)報告內存使用情況,共享內存按比例分配。

您也可以參考了解使用您的交換的內容

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done
echo "Overall swap used: $OVERALL"

/proc/'processPID'/status您可以在字段VmSwap上找到該信息。

使用此命令,您可以列出使用swap的所有進程。

for file in /proc/*/status ; 
do 
awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; 
done

參考: http//www.cyberciti.biz/faq/linux-which-process-is-using-swap/

我使用awk輸出一個按交換用法排序的好表:

  awk 'function pr(){if (s ~ /^[1-9]/) print p,n,s;n="";p="";s=""}BEGIN{FS="\t *";OFS="\t"}/^Name:/{pr();n=$2}/^VmSwap:/{s=$2}/^Pid:/{p=$2}END{pr()}' /proc/*/status | sort -t $'\t' -k3 -n -r | column -t -s $'\t'

樣本輸出:

  33992  httpd        13916 kB
  9331   httpd        10616 kB
  43124  httpd        1800 kB
  31353  httpd        592 kB
  8592   master       184 kB
  8606   crond        44 kB
  8653   mingetty     40 kB
  8655   mingetty     32 kB

基於onadrianlzt的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM