博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell分析swap分区被哪些程序占用(stress模拟环境)
阅读量:5749 次
发布时间:2019-06-18

本文共 1561 字,大约阅读时间需要 5 分钟。

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

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

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的

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,如需转载请自行联系原作者
你可能感兴趣的文章
“亲切照料”下的领域驱动设计
查看>>
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>
PHP安装环境,服务器不支持curl_exec的解决办法
查看>>
jQuery|元素遍历
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>