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,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
69 1
|
6月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
97 1
|
6月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
90 0
|
6月前
|
监控 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
90 1
|
6月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
82 0
|
6月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
154 0
|
6月前
|
存储 安全 Linux
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
81 0
|
1月前
|
Linux iOS开发 MacOS
MacOS环境-手写操作系统-35-Shell控制台
MacOS环境-手写操作系统-35-Shell控制台
19 2
|
2月前
|
SQL 安全 JavaScript
在多用户环境中,如何确保 PHP Shell 的安全性?
在多用户环境中,如何确保 PHP Shell 的安全性?
|
3月前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令