zoukankan      html  css  js  c++  java
  • [工具]ps

    ps

    如果想看一个进程的启动时间,可以用lstart来看

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #ps -eo pid,lstart,etime,cmd  |grep syslog-ng
    113160 Fri Nov 18 10:06:10 2016       00:00 grep --color=auto syslog-ng
    125114 Thu Nov 17 21:22:30 2016    12:43:40 /usr/sbin/syslog-ng -F -p /var/run/syslog-ng.pid
    
    

    如果想看一个进程的启动时间,可以用lstart来看,使用-p的时候,不要使用-e,-e把所有的都显示出来
    如果想看一个进程的运行时间,可以用etime

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #ps -o pid,lstart,etime,cmd  -p 125114
       PID                  STARTED     ELAPSED CMD
    125114 Thu Nov 17 21:22:30 2016    12:48:38 /usr/sbin/syslog-ng -F -p /var/run/syslog-ng.pid
    

    如果想要一个进程的使用内存大小,pid是实时获取,可以用pidof

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #ps -o rss  `pidof syslog-ng`
      RSS
     4584
    
    

    全面一点
    使用ps格式输出来查看进程状态:

    ps -eo user,stat..,cmd

    user 用户名

    uid 用户号

    pid 进程号

    ppid 父进程号

    size 内存大小, Kbytes字节.

    vsize 总虚拟内存大小, bytes字节(包含code+data+stack)

    share 总共享页数

    nice 进程优先级(缺省为0, 最大为-20)

    priority(pri) 内核调度优先级

    pmem 进程分享的物理内存数的百分比

    trs 程序执行代码驻留大小

    rss 进程使用的总物理内存数, Kbytes字节

    time 进程执行起到现在总的CPU暂用时间

    stat 进程状态

    cmd(args) 执行命令的简单格式

    例子:

    查看当前系统进程的uid,pid,stat,pri, 以uid号排序.

    ps -eo pid,stat,pri,uid –sort uid

    查看当前系统进程的user,pid,stat,rss,args, 以rss排序.

    ps -eo user,pid,stat,rss,args –sort rss

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #ps -o pid,user,stat,rss,start,lstart,etime,cmd,comm -p `pidof syslog-ng`
       PID USER     %CPU %MEM STAT   RSS  STARTED                  STARTED     ELAPSED CMD                         COMMAND
    125114 root      0.0  0.0 Ss    4584 21:22:30 Thu Nov 17 21:22:30 2016    13:00:37 /usr/sbin/syslog-ng -F -p / syslog-ng
    
    
    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #ps wwf -p `pidof syslog-ng`
       PID TTY      STAT   TIME COMMAND
    125114 ?        Ss     0:00 /usr/sbin/syslog-ng -F -p /var/run/syslog-ng.pid
    

    /proc/pid/statm

    • /proc/pid/stat: 包含了进程所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻
    • /proc/pid/statm: 包含了在此进程中所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。
    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/1/statm
    52262 6028 588 326 0 42268 0
    

    参数 解释 /proc/1/status

    Size (pages)= 550 任务虚拟地址空间的大小 VmSize/4

    Resident(pages)= 70 应用程序正在使用的物理内存的大小 VmRSS/4

    Shared(pages)= 62 共享页数

    Trs(pages)= 451 程序所拥有的可执行虚拟内存的大小 VmExe/4

    Lrs(pages)= 0 被映像到任务的虚拟内存空间的库的大小 VmLib/4

    Drs(pages)= 97 程序数据段和用户态的栈的大小 (VmData+ VmStk )4

    dt(pages) 0

    /proc/pid/stat

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

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/125114/stat
    125114 (syslog-ng) S 1 125114 125114 0 -1 4202496 1604 0 1 0 20 11 0 0 20 0 1 0 209348677 102916096 1146 18446744073709551615 4194304 4202428 140730535837200 140730535836584 140420785473603 0 0 4198400 90115 18446744071581088462 0 0 17 4 0 0 0 0 0 6303056 6304336 32817152 140730535841578 140730535841627 140730535841627 140730535841764 0
    
    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/1/stat
    1 (systemd) S 0 1 1 0 -1 4202752 1203176 1161192394 54 5341 13690 6258 1691457 1050313 20 0 1 0 11 214065152 6028 18446744073709551615 140118427332608 140118428667368 140728385054208 140728385050640 140118402308195 0 671173123 4096 1260 18446744071581088462 0 0 17 2 0 0 185 0 0 140118428673280 140118428804640 140118443540480 140728385056684 140728385056735 140728385056735 140728385056735 0
    

    参数 解释

    pid=1 进程(包括轻量级进程,即线程)号

    comm= linuxrc 应用程序或命令的名字

    task_state=S 任务的状态,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep (TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead

    ppid=0 父进程ID

    pgid=0 线程组号

    sid=0 c该任务所在的会话组ID

    tty_nr=0(pts/3) 该任务的tty终端的设备号,INT(0/256)=主设备号,(0-主设备号)=次设备号

    tty_pgrp=-1 终端的进程组号,当前运行在该任务所在终端的前台任务(包括shell 应用程序)的PID。

    task->flags=8388864进程标志位,查看该任务的特性

    min_flt=50该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数

    cmin_flt=633 累计的该任务的所有的waited-for进程曾经发生的次缺页的次数目

    maj_flt=20该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数

    cmaj_flt=4 累计的该任务的所有的waited-for进程曾经发生的主缺页的次数目

    utime=2 该任务在用户态运行的时间,单位为jiffies

    stime=357 该任务在核心态运行的时间,单位为jiffies

    cutime=72 累计的该任务的所有的waited-for进程曾经在用户态运行的时间,单位为jiffies

    cstime=342 累计的该任务的所有的waited-for进程曾经在核心态运行的时间,单位为jiffies

    priority=16 任务的动态优先级

    nice=0 任务的静态优先级

    num_threads=1 该任务所在的线程组里线程的个数

    it_real_value=0 由于计时间隔导致的下一个 SIGALRM 发送进程的时延,以 jiffy 为单位.

    start_time=22 该任务启动的时间,单位为jiffies

    vsize=2252800(bytes) 该任务的虚拟地址空间大小

    rss=70(page) 该任务当前驻留物理地址空间的大小

    Number of pages the process has in real memory,minu 3 for administrative purpose.

    这些页可能用于代码,数据和栈。

    rlim=4294967295=0xFFFFFFFF(bytes) 该任务能驻留物理地址空间的最大值

    start_code=32768=0x8000 该任务在虚拟地址空间的代码段的起始地址(由连接器决定)

    end_code=1879936该任务在虚拟地址空间的代码段的结束地址

    start_stack=3199270704=0Xbeb0ff30该任务在虚拟地址空间的栈的开始地址

    kstkesp=3199269552 sp(32 位堆栈指针) 的当前值, 与在进程的内核堆栈页得到的一致.

    kstkeip=1113432 =0X10FD58 指向将要执行的指令的指针, PC(32 位指令指针)的当前值.

    pendingsig=0 待处理信号的位图,记录发送给进程的普通信号

    block_sig=0 阻塞信号的位图

    sigign=0 忽略的信号的位图

    sigcatch=674311被俘获的信号的位图

    wchan=3221479524 如果该进程是睡眠状态,该值给出调度的调用点

    nswap=0 被swapped的页数

    cnswap=0 所有子进程被swapped的页数的和

    exit_signal=0 该进程结束时,向父进程所发送的信号

    task_cpu(task)=0 运行在哪个CPU上

    task_rt_priority=0 实时进程的相对优先级别

    task_policy=0 进程的调度策略,0=非实时进程,1=FIFO实时进程;2=RR实时进程

    /proc/pid/status

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

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/125114/status
    Name:	syslog-ng
    State:	S (sleeping)
    Tgid:	125114
    Ngid:	0
    Pid:	125114
    PPid:	1
    TracerPid:	0
    Uid:	0	0	0	0
    Gid:	0	0	0	0
    FDSize:	64
    Groups:
    VmPeak:	  100508 kB
    VmSize:	  100504 kB
    VmLck:	       0 kB
    VmPin:	       0 kB
    VmHWM:	    4584 kB
    VmRSS:	    4584 kB
    VmData:	     672 kB
    VmStk:	     136 kB
    VmExe:	       8 kB
    VmLib:	   11032 kB
    VmPTE:	     212 kB
    VmSwap:	       0 kB
    Threads:	1
    SigQ:	0/385847
    SigPnd:	0000000000000000
    ShdPnd:	0000000000000000
    SigBlk:	0000000000000000
    SigIgn:	0000000000401000
    SigCgt:	0000000180016003
    CapInh:	0000000000000000
    CapPrm:	0000000400002c0f
    CapEff:	0000000400000000
    CapBnd:	0000001fffffffff
    Seccomp:	0
    Cpus_allowed:	ffffffff,ffffffff,ffffffff,ffffffff
    Cpus_allowed_list:	0-127
    Mems_allowed:	00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
    Mems_allowed_list:	0
    voluntary_ctxt_switches:	4154
    nonvoluntary_ctxt_switches:	1
    

    输出解释

    参数 解释

    Name 应用程序或命令的名字

    State 任务的状态,运行/睡眠/僵死/

    SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg 也会相应地更大一些,所以计算出来的优先级也会相应高一些。

    Tgid=286 线程组号

    Pid=286 任务ID

    Ppid=243 父进程ID

    TracerPid=0 接收跟踪该进程信息的进程的ID号

    Uid Uid euid suid fsuid

    Gid Gid egid sgid fsgid

    FDSize=32 文件描述符的最大个数,最多能打开的文件句柄的个数file->fds

    Groups:

    VmPeak: 60184 kB /进程地址空间的大小/
    VmHWM: 18020 kB /文件内存映射和匿名内存映射的大小/

    VmSize(KB)=1499136 任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页

    VmLck(KB)=0 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)

    VmRSS(KB)= 344 kB 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)

    VmData(KB)=20KB 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm)

    VmStk(KB)=84KB 任务在用户态的栈的大小 (stack_vm)

    VmExe(KB)=4KB 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)

    VmLib(KB)=1300KB 被映像到任务的虚拟内存空间的库的大小 (exec_lib)

    VmPTE=6KB 该进程的所有页表的大小,单位:kb

    Threads=1 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。

    SigQ 待处理信号的个数

    SigPnd 屏蔽位,存储了该线程的待处理信号

    ShdPnd 屏蔽位,存储了该线程组的待处理信号

    SigBlk 存放被阻塞的信号

    SigIgn 存放被忽略的信号

    SigCgt 存放被俘获到的信号

    CapInh Inheritable,能被当前进程执行的程序的继承的能力

    CapPrm Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性

    CapEff Effective,进程的有效能力

    /proc/loadavg

    该文件中的所有值都是从系统启动开始累计到当前时刻。该文件只给出了所有CPU的集合信息,不能该出每个CPU的信息。

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/loadavg
    1.10 1.15 1.16 2/752 80542
    
    

    每个值的含义为:

    参数 解释

    lavg_1 (1.0) 1-分钟平均负载

    lavg_5 (1.00) 5-分钟平均负载

    lavg_15(0.93) 15-分钟平均负载

    nr_running (2) 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思

    nr_threads (19) 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)

    last_pid(301) 最大的pid值,包括轻量级进程,即线程。

    假设当前有两个CPU,则每个CPU的当前任务数为4.61/2=2.31

    /proc/pid/smaps

    [root@jiangyi02.sqa.zmf /home/ahao.mah]
    #cat /proc/125114/smaps
    

    该文件反映了该进程的相应线性区域的大小

  • 相关阅读:
    data structure,(ADT)
    正交和投影的理解
    高阶函数(包含偏函数)简要介绍
    名字与对象之间的建立引用与解除引用,Python中不可修改对象等,换行加文档字符串,
    迭代器
    CrashCourse 笔记
    列表生成式的进化版——生成器以及iterator
    高代小笔记——关于共轭,欧式空间,双线性函数
    高等代数的笔记杂记——Jordan标准形,Jordan块
    Centos6版本搭建Cobbler,实现自动化部署多版本系统
  • 原文地址:https://www.cnblogs.com/muahao/p/6076741.html
Copyright © 2011-2022 走看看