学习内存读取脚本

首先思想: 将需要监控的性能数据,定时输入到txt中

cpu:按秒去记录

内存:分钟即可(10min)



cpu:top 1
mem:avalible是可用的 1-avalible/total 是内存使用率
带宽:用工具nload ens160(网卡)或者 watch more /proc/net/dev 根据ens160网卡变化值计算

方法: 

1、

java进程 :

SCPid=$(jps|grep 'SC'|awk '{print $1}')

echo $SCPid

获取sc的pid,awk '{print $1}'是获取结果的第一个值

其他进程:

SSPid=`ps -afx|sed -n '/stream_server/p'|grep -v 'sed'|awk '{print $1}'`
echo $SSPid

获取ss的pid:

SSPid=`ps -afx|sed -n '/stream_server/p'  两行显示 

linux 性能测试监控shell脚本

grep -v 'sed'  反选,将sed哪一行删除

linux 性能测试监控shell脚本

或者用  ps -afx|grep './stream_server'|grep -v 'grep'

linux 性能测试监控shell脚本

awk '{print $1}'` 获取第一个值 pid

2、

其他进程:

top -p pid -bn1 > /test.txt    将pid的进程内容输入1次输出到 根目录下的test.txt

java进程 :

jmap -histo:live "$SCPid"|grep 'Total'|grep -v 'org'

jmap -histo:live "$SCPid"

使用jmap -histo[:live] pid查看堆内存中的对象数目、大小统计

grep -v 'org'

反选 删除org开头一行

3、

while true

do

code

code

sleep 60  休眠60秒重新执行

done

linux 性能测试监控shell脚本

linux 性能测试监控shell脚本

知识点:bash 和 正则


相关文章: