Linux内存泄漏检测shell脚本
本文实例为大家分享了Linux内存泄漏检测的shell脚本,供大家参考,具体内容如下
#!/bin/sh if [ $# -ne 1 ]; then echo "Usage: `basename $0` process_name" exit 1 fi APPNAME=$1 PROC="`ps -ef | grep "$APPNAME" | grep -v "grep" | grep -v "awk" | grep -v $0 | awk '{print $1}'`" if [ -z $PROC ]; then echo "invalid process_name" exit 1 fi SMAPS="/proc/$PROC/smaps" STATUS="/proc/$PROC/status" echo "proc ---$PROC----" OLDHEAP="0" while : do #HEAP="`cat $STATUS | grep "VmData" | awk '{print $2}'`" HEAP=`cat $SMAPS | grep -A 5 "heap" | grep "Rss" | awk '{print $2}'` if [ $HEAP -lt $OLDHEAP ]; then echo "`date` HEAP -`expr $OLDHEAP - $HEAP` to $HEAP kb" OLDHEAP=$HEAP elif [ $HEAP -gt $OLDHEAP ]; then echo "`date` HEAP +`expr $HEAP - $OLDHEAP` to $HEAP kb" OLDHEAP=$HEAP fi sleep 1 done
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
linux系统使用python获取内存使用信息脚本分享
复制代码 代码如下: #!/usr/bin/env Python from __future__ import print_functionfrom collections import OrderedDict def meminfo(): ''' Return the information in /proc/meminfo as a dictionary ''' meminfo=OrderedDict() with open('/proc/meminfo') as f:
-
Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重复行;wc –l命令:统计行数** 1.2 查看CPU核数 # cat /proc/cpuinfo | grep "cpu cores" | uniq cpu cores : 4 1.3 查看CPU型号 # cat /proc/cpuinfo | grep 'model name' |un
-
用来查看linux内存使用情况的shell脚本
在 linux 中,/proc/$PID/status 文件提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看. 本文为大家提供的这个脚本,通过查看status文件中VmRSS的字段来查看系统或进程使用的内存情况,有需要的朋友不妨参考下. 复制代码 代码如下: #! /bin/bash echo -n "PidName " > /root/script/pid.fec
-
深入理解linux下查看进程内存的使用情况
动态查看一个进程的内存使用 复制代码 代码如下: 1.top命令top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage) 静态查看一个进程的内存使用 复制代码 代码如下: 1.pmap命令pmap pid 2.ps命令ps aux|grep process_name 3.查看/proc/process_id/文件夹下的status文件Name: ph
-
解析Linux系统中JVM内存2GB上限的详解
我们通常使用的JVM都是32位的(64位的JVM会损失10-20%的性能,通常不建议使用),而32位程序的寻址空间应该是4GB才对,为什么Linux上的JVM内存只能使用2GB呢? 经过和JDK研发组的人员沟通,终于弄清楚了一些相关的原因.这个问题存在于早期的一些Linux版本中,特别是内核2.5以前的版本,2.6以后的版本就基本上没有这个问题了.原来这些Linux版本对进程有个对内存2GB的限制,是一个地址连续的内存块大小的上限,而JVM的堆空间(heap size)需要连续的地址空间,因此,
-
linux 内存管理机制详细解析
物理内存和虚拟内存我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space). 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的
-
linux使用管道命令执行ps获取cpu与内存占用率
复制代码 代码如下: #include <stdio.h>#include <unistd.h>int main(){ char caStdOutLine[1024]; // ps 命令的标准输出中的一行信息 char* pcTmp = NULL; // 指向以空格拆分后的字符串 char caSelfPID[10]; // 自身进程的PID字符串 char caPSCmd[24]; // "ps aux | grep
-
手动释放Linux服务器内存(具体操作步骤)
在服务器运行过程中,使用free -m查看服务器内存时,经常会发现free值很小,有些同学就会很紧张,总想采取一些措施,使得free值看起来高一点,心里就比较爽一点.其实,个人觉得这完全是图一时之快,没什么实质性用途. 一.大众释放内存方法1. 首先使用free -m查看剩余内存 复制代码 代码如下: linux-8v2i:~ # free -m total used free shared buffers cachedMem
-
Linux和Windows中tomcat修改内存大小的方法
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置 实例,以下给出1G内存环境下java jvm 的参数设置参考: 复制代码 代码如下: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "JAVA_O
-
使用python获取CPU和内存信息的思路与实现(linux系统)
大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数).与其他文件系统不同,/proc 存在于内存而不是硬盘中.proc 文件系统提供的信息如下: •进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的
随机推荐
- React实现双向绑定示例代码
- python分割和拼接字符串
- 详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
- C#实现支持断点续传多线程下载客户端工具类
- php导入大量数据到mysql性能优化技巧
- Android获取联系人姓名和电话代码
- MySQL存储过程中一些基本的异常处理教程
- MySQL数据库如何开启远程连接(多备份)
- JS二维数组的定义说明
- js实现用滚动条来放大缩小图片的代码
- jquery+css实现绚丽的横向二级下拉菜单-附源码下载
- js玩一玩WSH吧
- 网页打开自动最大化的js代码
- asp.net(C#)中上传大文件的几中常见应用方法
- c++中八大排序算法
- Android利用SurfaceView实现简单计时器
- 思科路由器常用配置命令大全A-X
- Python对List中的元素排序的方法
- 普通人如何在区块链行业赚钱
- php fread函数使用方法总结