如何查看进程实际的内存占用情况详解

top命令可以查看进程内存的使用,但是不够详细。还有一些命令可以进行更加详细的查看。

[root@localhost ~]# cat /proc/5606/status
Name:   switch4
State:  S (sleeping)
Tgid:   5606
Pid:    5606
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
Utrace: 0
FDSize: 32
Groups: 0 1 2 3 4 6 10
VmPeak:    85328 kB
VmSize:    84308 kB——进程占用的虚拟内存大小。
VmLck:         0 kB
VmHWM:     46368 kB
VmRSS:     46360 kB——占用的物理内存。
VmData:    76512 kB——data段内存大小(BSS,data)
VmStk:        88 kB——栈大小。
VmExe:       312 kB——代码段大小。
VmLib:      6868 kB——库大小
VmPTE:       148 kB
VmSwap:        0 kB
Threads:        4
SigQ:   1/31237
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000005
SigCgt: 0000000180005202
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        116683469
nonvoluntary_ctxt_switches:     301173

[root@localhost ~]# cat /proc/5627/smaps
00110000-00112000 r-xp 00000000 08:02 652817     /home/mic_lib_2012-04-21-03-16-32/libdb.so
Size:                  8 kB
Rss:                   8 kB
Pss:                   1 kB
Shared_Clean:          8 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            8 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
00112000-00113000 rw-p 00001000 08:02 652817     /home/mic_lib_2012-04-21-03-16-32/libdb.so
Size:                  4 kB
Rss:                   4 kB
Pss:                   4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
08048000-080a2000 r-xp 00000000 08:02 1044485    /home/execute_2012-04-21-03-16-32/mrfc
Size:                360 kB——虚拟内存
Rss:                 156 kB——物理内存
Pss:                 156 kB
Shared_Clean:          0 kB——共享部分,动态链接库
Shared_Dirty:          0 kB
Private_Clean:       156 kB——私有部分。
Private_Dirty:         0 kB
Referenced:          156 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
09f43000-09f87000 rw-p 00000000 00:00 0          [heap]——堆的内存
Size:                272 kB
Rss:                 184 kB
Pss:                 184 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:       184 kB
Referenced:          184 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
b6cfc000-b6cfd000 ---p 00000000 00:00 0
Size:                  4 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
b6cfd000-b7703000 rw-p 00000000 00:00 0
Size:              10264 kB
Rss:                  28 kB
Pss:                  28 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        28 kB
Referenced:           28 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
b7714000-b7716000 rw-p 00000000 00:00 0
Size:                  8 kB
Rss:                   8 kB
Pss:                   8 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         8 kB
Referenced:            8 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
bfed4000-bfee9000 rw-p 00000000 00:00 0          [stack]——栈的内存。
Size:                 88 kB
Rss:                  44 kB
Pss:                  44 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        44 kB
Referenced:           44 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB

(0)

相关推荐

  • 如何查看进程实际的内存占用情况详解

    top命令可以查看进程内存的使用,但是不够详细.还有一些命令可以进行更加详细的查看. [root@localhost ~]# cat /proc/5606/statusName:   switch4State:  S (sleeping)Tgid:   5606Pid:    5606PPid:   1TracerPid:      0Uid:    0       0       0       0Gid:    0       0       0       0Utrace: 0FDSize

  • Python利用memory_profiler查看内存占用情况

    目录 简介 安装 使用方法 1.通过装饰器运行 2.通过命令行运行 补充 简介 memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析.它是一个纯python模块,依赖于psutil模块. 安装 pip install memory_profiler 使用方法 1.通过装饰器运行 @profile def func1(): 2.通过命令行运行 python -m memory_profiler test_code.py 案例源码: # -*- c

  • Python 如何查看程序内存占用情况

    目录 查看程序内存占用情况 python查看内存使用 查看程序内存占用情况 flyfish psutil 这里用在查看内存占用情况 memory_profiler输出每一行代码增减的内存 安装 pip install memory_profiler 代码 import numpy as np import os import psutil import gc from memory_profiler import profile @profile def test():     a=np.ful

  • Python获取android设备cpu和内存占用情况

    功能:获取android设备中某一个app的cpu和内存 环境:python和adb 使用方法:使用adb连接android设备,打开将要测试的app,执行cpu/内存代码 cpu获取代码如下:(输入参数为脚本执行时间) # coding:utf-8 ''' 获取系统total cpu ''' import os, csv import time import csv import numpy as np from matplotlib import pyplot as plt cpu_list

  • Linux系统诊断之内存基础深入详解

    1.背景 谈及linux内存,很多时候,我们会关注free,top等基础命令.当系统遇到异常情况时,内存问题的根因追溯,现场诊断时,缺乏深层次的debug能力.本篇幅不做深层讨论,能把当前系统的问题描述清楚,是每个SRE应该具备的最基础能力. 2. free 2.1 free命令原理 free是通过查看 /proc/meminfo 来获取内存的使用情况.但是 /proc/meminfo 这个文件又是怎么来的?我们先了解下 /proc 目录: /proc 是一个虚拟文件系统,该目录下的所有文件都是

  • JVM内存参数配置详解

    首先我们知道:JVM发生内存错误的类型 1.堆内存泄漏:OutOfMemory:Java heap space 此种内存泄漏,增加内存,只能暂时解决问题,并不能根治问题.必须要优化代码,一定是代码的问题:排查堆中的大量对象,就会发现,这些对象都被引用,对象不能及时被回收,导致超出了堆的设定最大内存. 2.老年代内存泄漏:OutOfMemoryError:PermGen space 类名.访问修饰符.字段描述.方法描述等,所占空间大于永久代最大值,就会出现,一般都是初始化内存的时候,空间太小,解决

  • Java GC 机制与内存分配策略详解

    Java GC 机制与内存分配策略详解 收集算法是内存回收的方法论,垃圾收集器是内存回收的具体实现 自动内存管理解决的是:给对象分配内存 以及 回收分配给对象的内存 为什么我们要了解学习 GC 与内存分配呢? 在 JVM 自动内存管理机制的帮助下,不再需要为每一个new操作写配对的delete/free代码.但出现内存泄漏和溢出的问题时,如果不了解虚拟机是怎样使用内存的,那么排查错误将是一项非常艰难的工作. GC(垃圾收集器)在对堆进行回收前,会先确定哪些对象"存活",哪些已经&quo

  • C语言中关于动态内存分配的详解

    目录 一.malloc 与free函数 二.calloc 三.realloc 四.常见的动态内存的错误 [C语言]动态内存分配 本期,我们将讲解malloc.calloc.realloc以及free函数. 这是个动态内存分配函数的头文件都是 <stdlib.h>. c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢? 首先让我们熟悉一下计算机的内存吧!在计算机的系统中大致有这四个内存区域: 1)栈:在栈里面储存一些我们定义的局部变量以及形参(

  • C++程序的五大内存分区实例详解

    目录 1.栈内存区 1.1.调用函数时通过栈来传递函数的参数值 1.2.线程占用的栈内存是有上限的 2.堆内存区 3.全局/静态内存区 4.文字常量区 5.程序代码区 C++程序在运行时所占用的内存区域,一般可分为栈内存区.堆内存区.全局/静态内存区.文字常量内存区及程序代码区5大分区: 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区. 1.栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区.栈分区是用来存放函数参数及函数局部变

  • C++中的内存对齐实例详解

    C++中的内存对齐实例详解 内存对齐 在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度. 我们还是先来看一段简单的程序: 程序一 #include <iostream> using namespace std; struct X1 { int i;//4个字节 char c1;//1个字节 char c2;//1个字节 }; struct X2 { char c1;//1个字节 int i;//4个字节 ch

随机推荐