Linux杂记(一) —— 监控某程序是否存在内存泄露

执行某程序

让程序后台执行:

./xxx &

启动top监控

top

在这里插入图片描述
顶层top/Tasks/Cpu(s)/Mem/Swap五行的含义如下:

  • top: 第一行,任务队列信息,同 uptime 命令的执行结果

    系统时间:07:27:05
    运行时间:up 1:57 min,
    当前登录用户: 3 user
    负载均衡(uptime) load average: 0.00, 0.00, 0.00
    average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
    load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

  • 第二行,Tasks — 任务(进程)

    总进程:150 total, 运行:1 running, 休眠:149 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie

  • 第三行,cpu状态信息

    0.0%us【user space】— 用户空间占用CPU的百分比。
    0.3%sy【sysctl】— 内核空间占用CPU的百分比。
    0.0%ni【】— 改变过优先级的进程占用CPU的百分比
    99.7%id【idolt】— 空闲CPU百分比
    0.0%wa【wait】— IO等待占用CPU的百分比
    0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比
    0.0%si【Software Interrupts】— 软中断占用CPU的百分比

  • 第四行,内存状态

    1003020k total, 234464k used, 777824k free, 24084k buffers【缓存的内存量】

  • 第五行,swap交换分区信息

    2031612k total, 536k used, 2031076k free, 505864k cached【缓冲的交换区总量】
    备注:
    可用内存=free + buffer + cached
    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
    第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,
    第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。
    纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

第七行及以下的含义如下:

列数名称含义
1PID进程id
2USER进程所有者
3PR进程优先级
4NInice值。负值表示高优先级,正值表示低优先级
5VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
6RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
7SHR共享内存大小,单位kb
8S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
9%CPU上次更新到现在的CPU时间占用百分比
10%MEM进程使用的物理内存百分比
11TIME+进程使用的CPU时间总计,单位1/100秒
12COMMAND进程名称(命令名/命令行)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值