专栏首页我命由我不由天检测应用的内存泄漏情况(shell)

检测应用的内存泄漏情况(shell)

写代码——调试——修BUG

改来改去可能还存在一些没发现的问题,在工程量大的时候更容易出现,例如内存泄漏这样的问题,严重影响着系统性能。

网上有些检测C程序是否存在内存泄漏的工具还不错的,例如valgrind。

为解决服务器中运行的应用是否存在内存泄漏问题,编写了脚本来进行检测。

思路如下:

01. 文件1:ProcessList,用来保存需要内存泄漏检测的应用程序名,通过文件2:TestManage来管理,通过./TestManage -a 应用名 来添加或者./TestManage -d 应用名 来去除。

02. 文件3:MemoryLeakTest, 主程序。 首先清空文件4:RSSList(用来保存进程的内存检测结果)和文件5: LeakMemory.log(用来保存存在内存泄漏的应用名)。

03. 开始循环1,循环6次,每次循环通过文件1中的全部应用程序名—进程号—status文件得到占用内存大小,保存与文件4中,每次循环间隔1800秒,因此总计2个半小时。

04. 第三步结束后根据文件4中保存的所有应用程序的6次内存大小,相邻两个比较,若后面的大于前面的10%,flag变量值+1,共比较5次,若flag大于等于4,则认定该应用存在内存泄漏。

shell笔记:

01. sed用法:

  在匹配字符串下一行添加:sed -i /$str/a\ "$str_new" $filename

  在匹配字符串上一行添加:sed -i "/$str/i\\$str_new" $filename $str_new前的一个\是为转义

  两个变量用下划线连接:${str1}_${str2}

02.

grep -m m "$str1" |awk -F $str2 '{print $p}'| sed -n "np"

匹配前m行个str1,在包含str2后的第p列,取第n行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • golang 中使用mysql报错:“ scannable dest type slice with >1 columns (4) in result”

    jianghaibobo
  • C++单继承、多继承情况下的虚函数表分析

    C++的三大特性之一的多态是基于虚函数实现的,而大部分编译器是采用虚函数表来实现虚函数,虚函数表(VTAB)存在于可执行文件的只读数据段中,指向VTAB的虚表指...

    jianghaibobo
  • 写一个简单的配置文件和日志管理(shell)

    共4个文件,服务端一个UpdateServer.conf配置文件和一个UpdateServer脚本,客户端一个UpdateClinet.conf配置文件和一个U...

    jianghaibobo
  • Unsafe 的 CAS 和内存操作的原理、源码解毒

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    业余草
  • nginx内存池

    2、防止出错:统一在生命周期结束时通过销毁内存池释放所有资源,避免中间异常返回忘记释放资源,造成资源泄漏。

    用户1215536
  • 连续内存分配

    连续内存是一种比较直观的做法。这种做法将内存分为两个区域,一个是用户进程区域,另一个是操作系统区域。操作系统一般放在内存的低地址区域,这时因为中断向量被设置在低...

    zy010101
  • EasyNVR网页无插件播放摄像机RTSP流是如何调取接口在Web页实现多窗口同时直播的

    在互联网飞速发展的时代,开发者常会说的一个词就是“跨平台”。自从移动端的用户需求越来越大,H5逐渐发展,跨平台似乎已经成为了软件开发不可或缺的技术。EasyNV...

    EasyNVR
  • IDC续航焦虑,何以解忧?(上篇)

    导语 “养兵千日,用兵一时”,这句话用来形容蓄电池再合适不过了。作为数据中心常用的后备储能器件,蓄电池大部分时间都处于“闲置”充电状态,但在应对各种突发市电异...

    腾讯数据中心
  • Linux学习----文本三剑客——sed(马哥教育原创)

    我以前的文章介绍过grep了,今天我就来说一下第二个sed,它是stream editor的缩写。在Linux的文本文件中文本存储都是一行,显示时表现的多行其实...

    Py_lover
  • [linux][memory]进程的最大内存使用量的讨论

    前言: 一个进程最大能使用多少虚拟内存,能控制的地方还是比想象的多一点。 尤其是IaaS上,一个qemu进程能使用多少虚拟内存,就是对应着虚拟机的物理内存的最大...

    皮振伟

扫码关注云+社区

领取腾讯云代金券