“Linux下找出占用swap的进程”的版本间的差异
跳到导航
跳到搜索
docker>Evan (→shell) |
小 (导入1个版本) |
(没有差异)
|
2019年10月14日 (一) 13:48的最新版本
问题来了
是不是有时又有swap被用了呢 这个时候呢 不要烦 哥帮你 哈哈
最佳解决安装是 iotop
yum install -y iotop 如果升级了python vim /usr/sbin/iotop #!/usr/bin/python2.6
shell
在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中 ,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些。 cat /proc/1/smaps 这里解释下samps里面的内容: bfdca000-bfddf000 是该虚拟内存段的开始和结束位置 rw-p 内存段的权限,rw是指可读写,p是指私有,如果是s则为共享 bffea000 该虚拟内存段在对应的映射文件中的偏移量 00:00 文件的主设备和次设备号 0 被映射到虚拟内存的文件的索引节点号 [stack] 被映射到虚拟内存的文件名称 Size 是进程使用内存空间,并不一定实际分配了内存(VSS) Rss是实际分配的内存(不需要缺页中断就可以使用的) Shared_Clean 和其他进程共享的未改写页面 Shared_Dirty 和其他进程共享的已改写页面 Private_Clean 未改写的私有页面页面 Private_Dirty 已改写的私有页面页面 Swap 存在于交换分区的数据大小(如果物理内存有限,可能存在一部分在主存一部分在交换分区) Pss是平摊计算后的使用内存(有些内存会和其他进程共享,例如mmap进来的) awk '/^Swap:/ {SWAP+=$2}END{print SWAP" KB"}' /proc/$(pid)/smaps cat /proc/pid/smaps | grep Swap |wc -l #!/bin/bash # Get current swap usage for all running processes # writted by xly function getswap { 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" } getswap #getswap|egrep -v "Swap used: 0"
参考
linux 查看哪些进程战用swap http://blog.csdn.net/xiangliangyu/article/details/8213127 http://blog.sina.com.cn/s/blog_704836f40101b3v3.html