shell分析swap分区被哪些程序占用(stress模拟环境)

简介:
1
2
3
4
5
6
7
8
9
10
11
12
我的博客已迁移到xdoujiang.com请去那边和我交流
1、查看版本
cat  /etc/debian_version 
7.8
2、看下内存(我这边是256MB内存 swap分了4G)
free  -m
              total       used        free      shared    buffers     cached
Mem:           231        124        106          0          8         79
-/+ buffers /cache :         36        194
Swap:         3814          0       3814
3、使用stress模拟占用swap分区环境
stress --cpu 1 --io 1 --vm 2 --vm-bytes 25000000 --vm-keep --verbose

wKiom1VnTMnCZJ9MAAK4LPNKg3M474.jpg

1
4、查看到swap分区不断在使用

wKioL1VnTm-j8yDPAAJ_Zd28MJA482.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
5、使用脚本分析下
#!/bin/bash
#--------------------------------------------------  
#Created:2015-05-20
#Author:jimmygong
#Mail:jimmygong@taomee.com
#Function:
#Version:1.0
#--------------------------------------------------
function  swapoccupancy ()
{
     echo  -e  "Pid\tSwap\tProgame"
     num=0
     for  pid  in  ` ls  -1  /proc | egrep  "^[0-9]" `
     do
         if  [[ $pid -lt 20 ]]
         then
             continue
         fi
         program=` ps  -eo pid, command | grep  -w $pid| grep  - v  grep | awk  '{print $2}' `
         for  swap  in  ` grep  Swap  /proc/ $pid /smaps  2> /dev/null | awk  '{print $2}' `
         do
             let  num=$num+$swap
         done
         echo  -e  "${pid}\t${num}\t${program}"
         num=0
     done | sort  -nrk2| head
}
swapoccupancy
exit  0
6、我这边脚本写的是取占用前10的

wKioL1VnTobBdXRUAADtFLyCXGw437.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
7、提供下高手写的脚本
#!/bin/bash
cd  /proc
for  pid  in  [0-9]*;  do
     command =$( cat  /proc/ $pid /cmdline )
     swap=$(
         awk  '
             BEGIN  { total = 0 }
             /Swap/  { total += $2 }
             END    { print total }
         /proc/ $pid /smaps
     )
     if  (( $swap > 0 ));  then
         if  [[  "${head}"  !=  "yes"  ]];  then
             echo  -e  "PID\tSWAP\tCOMMAND"
             head = "yes"
         fi
         echo  -e  "${pid}\t${swap}\t${command}"
     fi
done









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1653649,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
30 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
33 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
38 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
33 0
|
1月前
|
存储 安全 Linux
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
27 0
|
4月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
84 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
33 0
|
2月前
|
Shell Linux 开发工具
操作系统(Linux)外壳程序shell 、用户、权限
操作系统(Linux)外壳程序shell 、用户、权限
|
7月前
|
Java Linux Shell
Linux开发和编程指南:搭建环境、Shell脚本与常见编程语言配置及使用
Linux开发和编程指南:搭建环境、Shell脚本与常见编程语言配置及使用
686 0