1. 查看某个进程的内存占用
1.1. 采集
- 下边内存保存为 cat-memory.sh 脚本文件,赋予可执行权限
- 执行
./cat-memory.sh pid
会生成 pid.txt
#!/bin/bash
process=$1
out=$1'.txt'
pid=$1
echo '时间' '内存(KB)' >> $out
while true
do
mem=`cat /proc/$pid/status|grep -e VmRSS|awk '{VmRSS=NF-1} {print $VmRSS}'`
echo $(date +"%m-%d-%H:%M:%S") $mem
echo $(date +"%m-%d-%H:%M:%S") $mem >> $out
sleep 5
done
时间 内存(KB)
10-08-19:35:35 5632
10-08-19:35:40 5632
10-08-19:35:45 5632
10-08-19:35:50 5632
10-08-19:35:55 5632
1.2. 分析
- 将下边内存保存为 show-memory.py 文件
- 执行
python3 ./show-memory.py pid
会将 pid.txt 转化为 pid.html, 浏览器打开 pid.html 即可查看
import sys
from pyecharts import options as opts
from pyecharts.charts import Line
import pandas as pd
for argv in sys.argv[1:]:
data = pd.read_table(f"{argv}.txt", sep=" ")
print("info", data.info())
x_data = data["时间"].tolist()
y_data = data["内存(KB)"].tolist()
c = Line()
c.add_xaxis(x_data)
c.add_yaxis("内存", y_data)
c.set_global_opts(title_opts=opts.TitleOpts(title="折线图-基本示例"))
c.render(f"{argv}.html")