学习内存读取脚本
首先思想: 将需要监控的性能数据,定时输入到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' 两行显示
grep -v 'sed' 反选,将sed哪一行删除
或者用 ps -afx|grep './stream_server'|grep -v 'grep'
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
知识点:bash 和 正则