linux – 我怎么知道哪个进程使用swap?

前端之家收集整理的这篇文章主要介绍了linux – 我怎么知道哪个进程使用swap?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有很多可用的内存(大约4G)但在我的软呢帽中使用了交换(200 M).

我想知道哪个进程使用swap.我怎么知道呢.

ps和top仅显示内存使用情况.

提前致谢.

解决方法

here开始:

[a] /proc/meminfo – This file reports statistics about memory usage on
the system. It is used by free to report the amount of free and used
memory (both physical and swap) on the system as well as the shared
memory and buffers used by the kernel. You can also use free,vmstat
and other tools to find out the same information.

[b]
/proc/${PID}/smaps,/proc/${PID}/status,and /proc/${PID}/stat : Use
these files to find information about memory,pages and swap used by
each process using its PID.

[c] smem – This command (python script) reports memory usage with
shared memory divided proportionally.

你也可以参考Find out what is using your swap

#!/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"

猜你在找的Linux相关文章