[置顶] Linux下实现脚本监测特定进程占用内存情况
2016-02-06 23:19
441 查看
内存泄露是C/C++程序员经常需要面对的问题,除了有效地经常查找出内存泄露的位置外,在嵌入式的开发中,还经常需要确定自己写的程序是否存在内存泄露的情况
Linux系统下,我们可以利用以下命令来获取特定进程的运行情况:
cat /proc/$PID/status
其中PID是具体的进程号,这个命令打印出/proc/特定进程/status文件的内容,信息比较多,包含了物理内存/虚拟内存的使用状况,监控进程是否有内存泄露的问题,一般查看进程占用物理内存的情况:
VmRSS: xxxkB
可以采用grep命令过滤出我们需要的信息:
由于PID号需要通过进程名获取,同样使用grep命令过滤出我们指定进程的进程号:
再设置一个循环,每十秒获取一次信息并写入指定文件,完整的脚本如下:
Linux系统下,我们可以利用以下命令来获取特定进程的运行情况:
cat /proc/$PID/status
其中PID是具体的进程号,这个命令打印出/proc/特定进程/status文件的内容,信息比较多,包含了物理内存/虚拟内存的使用状况,监控进程是否有内存泄露的问题,一般查看进程占用物理内存的情况:
VmRSS: xxxkB
可以采用grep命令过滤出我们需要的信息:
cat /proc/$PID/status | grep RSS >> "$LOG" #过滤包含RSS的行,并且重定向到参数LOG表示的文件
由于PID号需要通过进程名获取,同样使用grep命令过滤出我们指定进程的进程号:
ps | grep $PROCESS | grep -v 'grep' | awk '{print $1;}'#$PROCESS表示进程名字
再设置一个循环,每十秒获取一次信息并写入指定文件,完整的脚本如下:
#!/bin/bash PROCESS=进程名 LOG="/mnt/memlog.txt" sleep 10 #删除上次的监控文件 if [ -f "$LOG" ];then rm "$LOG" fi #过滤出需要的进程ID PID=$(ps | grep $PROCESS | grep -v 'grep' | awk '{print $1;}') while [ "$PID" != "" ] do cat /proc/$PID/status | grep RSS >> "$LOG"#过滤出VmRSS行 sleep 5 PID=$(ps | grep $PROCESS | grep -v 'grep' | awk '{print $1;}') done
相关文章推荐
- Linux一些数学计算相关的命令
- Locale in Linux
- Locale in Linux
- Locale in Linux
- Locale in Linux
- Locale in Linux
- Locale in Linux
- 记CentOS 7环境下安装g++
- CentOS 6 安装在虚拟机上 eth0网卡无法工作的解决
- 老王学linux-heartbeat-2.1.4-12.el6.x86_64
- Linux目录遍历实现 -- 列出当前目录下所有文件
- linux系统的ssh服务开启方法
- linux安装卸载rpm包
- Linux系统性能测试工具sysbench
- linux 下编译 boost 的笔记
- RT-Thread创始人熊谱翔: 我和Linux、嵌入式实时操作系统RT-Thread
- 从网上收集的Linux命令
- Linux服务器常用性能监控命令汇总
- centos7引导项修复
- Linux常用命令