zoukankan      html  css  js  c++  java
  • linux proc进程 pid stat statm status id 目录 解析 内存使用

    /proc//status


    包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

    [root@localhost ~]# cat /proc/self/status
    Name: cat
    State: R (running)
    SleepAVG: 88%
    Tgid: 5783
    Pid: 5783
    PPid: 5742
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 6588 kB
    VmLck: 0 kB
    VmRSS: 400 kB
    VmData: 144 kB
    VmStk: 2040 kB
    VmExe: 14 kB
    VmLib: 1250 kB
    StaBrk: 0804e000 kB
    Brk: 088df000 kB
    StaStk: bfe03270 kB
    ExecLim: 0804c000
    Threads: 1
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000000000
    SigCgt: 0000000000000000
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff


    输出解释
    参数 解释
    Name 应用程序或命令的名字
    State 任务的状态,运行/睡眠/僵死/
    SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg 也会相应地更大一些,所以计算出来的优先级也会相应高一些。
    Tgid 线程组号
    Pid 任务ID
    Ppid 父进程ID
    TracerPid 接收跟踪该进程信息的进程的ID号
    Uid Uid euid suid fsuid
    Gid Gid egid sgid fsgid
    FDSize 文件描述符的最大个数,file->fds
    Groups
    VmSize(KB) 任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
    VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)
    VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
    VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm)
    VmStk(KB) 任务在用户态的栈的大小 (stack_vm)
    VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)
    VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib)
    VmPTE 该进程的所有页表的大小,单位:kb
    Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。
    SigQ 待处理信号的个数
    SigPnd 屏蔽位,存储了该线程的待处理信号
    ShdPnd 屏蔽位,存储了该线程组的待处理信号
    SigBlk 存放被阻塞的信号
    SigIgn 存放被忽略的信号
    SigCgt 存放被俘获到的信号
    CapInh Inheritable,能被当前进程执行的程序的继承的能力
    CapPrm Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性
    CapEff Effective,进程的有效能力


    范例 1
    可以看出该应用程序的正文段(1KB)很小,说明代码很少,是依靠库(1251KB)来执行。栈(138KB)适中,说明没有太多许多嵌套函数或特别多的临时变量。VmLck为0说明进程没有锁住任何页。VmRSS表示当前进程使用的物理内存为2956KB。当进程开始使用已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。
    [root@localhost 1]# cat /proc/4668/status
    Name: gam_server
    State: S (sleeping)
    SleepAVG: 88%
    Tgid: 31999
    Pid: 31999
    PPid: 1
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 2136 kB
    VmLck: 0 kB
    VmRSS: 920 kB
    VmData: 148 kB
    VmStk: 88 kB
    VmExe: 44 kB
    VmLib: 1820 kB
    VmPTE: 20 kB
    Threads: 1
    SigQ: 1/2047
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000001006
    SigCgt: 0000000210000800
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff
    [root@localhost 31999]# 



     /proc//stat
    包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

    [root@localhost ~]# cat /proc/6873/stat
    6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0 2097798 0 0 0 0 0 0 0 17 0 0 0 [root@localhost ~]#


    每个参数意思为:
    参数 解释
    pid=6873 进程(包括轻量级进程,即线程)号
    comm=a.out 应用程序或命令的名字
    task_state=R 任务的状态,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep (TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead
    ppid=6723 父进程ID
    pgid=6873 线程组号
    sid=6723 c该任务所在的会话组ID
    tty_nr=34819(pts/3) 该任务的tty终端的设备号,INT(34817/256)=主设备号,(34817-主设备号)=次设备号
    tty_pgrp=6873 终端的进程组号,当前运行在该任务所在终端的前台任务(包括shell 应用程序)的PID。
    task->flags=8388608 进程标志位,查看该任务的特性
    min_flt=77 该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数
    cmin_flt=0 累计的该任务的所有的waited-for进程曾经发生的次缺页的次数目
    maj_flt=0 该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数
    cmaj_flt=0 累计的该任务的所有的waited-for进程曾经发生的主缺页的次数目
    utime=1587 该任务在用户态运行的时间,单位为jiffies
    stime=1 该任务在核心态运行的时间,单位为jiffies
    cutime=0 累计的该任务的所有的waited-for进程曾经在用户态运行的时间,单位为jiffies
    cstime=0 累计的该任务的所有的waited-for进程曾经在核心态运行的时间,单位为jiffies
    priority=25 任务的动态优先级
    nice=0 任务的静态优先级
    num_threads=3 该任务所在的线程组里线程的个数
    it_real_value=0 由于计时间隔导致的下一个 SIGALRM 发送进程的时延,以 jiffy 为单位.
    start_time=5882654 该任务启动的时间,单位为jiffies
    vsize=1409024(page) 该任务的虚拟地址空间大小
    rss=56(page) 该任务当前驻留物理地址空间的大小
    Number of pages the process has in real memory,minu 3 for administrative purpose.
    这些页可能用于代码,数据和栈。
    rlim=4294967295(bytes) 该任务能驻留物理地址空间的最大值
    start_code=134512640 该任务在虚拟地址空间的代码段的起始地址
    end_code=134513720 该任务在虚拟地址空间的代码段的结束地址
    start_stack=3215579040 该任务在虚拟地址空间的栈的结束地址
    kstkesp=0 esp(32 位堆栈指针) 的当前值, 与在进程的内核堆栈页得到的一致.
    kstkeip=2097798 指向将要执行的指令的指针, EIP(32 位指令指针)的当前值.
    pendingsig=0 待处理信号的位图,记录发送给进程的普通信号
    block_sig=0 阻塞信号的位图
    sigign=0 忽略的信号的位图
    sigcatch=082985 被俘获的信号的位图
    wchan=0 如果该进程是睡眠状态,该值给出调度的调用点
    nswap 被swapped的页数,当前没用
    cnswap 所有子进程被swapped的页数的和,当前没用
    exit_signal=17 该进程结束时,向父进程所发送的信号
    task_cpu(task)=0 运行在哪个CPU上
    task_rt_priority=0 实时进程的相对优先级别
    task_policy=0 进程的调度策略,0=非实时进程,1=FIFO实时进程;2=RR实时进程




    /proc//statm

    包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

    [root@localhost ~]# cat /proc/self/statm
    654 57 44 0 0 334 0


    输出解释
    CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:
    参数 解释 /proc//status
    Size (pages) 任务虚拟地址空间的大小 VmSize/4
    Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4
    Shared(pages) 共享页数 0
    Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4
    Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4
    Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4
    dt(pages) 0

    本文转自:

    http://blog.csdn.net/zjl_1026_2001/article/details/2294036

    http://blog.csdn.net/zjl_1026_2001/article/details/2294067

    http://blog.csdn.net/zjl_1026_2001/article/details/2294072

  • 相关阅读:
    Centos下安装部署redis
    mysql 事务操作
    python 基础杂货铺
    6、Django 第三方工具
    5、Django
    4、django 模板
    RPC框架--missian框架
    jvm详情——7、jvm调优基本配置、方案
    jvm详情——6、堆大小设置简单说明
    jvm详情——5、选择合适的垃圾收集算法
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/4254268.html
Copyright © 2011-2022 走看看