zoukankan      html  css  js  c++  java
  • 检测应用的内存泄漏情况(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行。

    种树最好的时间是十年前,其次是现在。
  • 相关阅读:
    python使用subprocess及delegator调用第三方程序
    CentOS安装配置nginx-rtmp-module(同时支持IPv4和IPv6)
    npm和cnpm安装(for windows)
    MySQL中pymysql的具体操作
    浅谈Red Hat和 Centos7
    [致]Markdown新手指南
    python面试题
    VB使用ADO中recordeset.delete删除数据记录问题
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6位运算
  • 原文地址:https://www.cnblogs.com/bobojiang/p/7850652.html
Copyright © 2011-2022 走看看