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

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

[工具]ps的更多相关文章

  1. Linux进程管理四大工具ps \dstat\ top\ htop

    Linux进程管理之“四大名捕” 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”.内功卓越的高手“铁手”.腿功惊人 ...

  2. linux日常管理-系统进程查看工具-ps

    查看系统有那些进程 命令有ps aux 和命令 ps -elf USER  哪个用户使用了这个进程 PID  进程的id %CPU 占用CPU的百分比 %MEM 占用内存的百分比 VSZ 虚拟内存的大 ...

  3. Jdk内置性能测试工具的介绍

    (一) JConsole JConsole使用JVM的可扩展性Java管理扩展(JMX)工具来提供关于运行于Java平台的应用程序的性能和资源消耗的信息. 在J2SE 5.0软件中,你需要启动使用-D ...

  4. Linux系统及应用问题分析排查工具

    linux 阿里技术协会 摘要: Linux服务器上经常遇到一些系统和应用上的问题,如何分析排查,需要利器,下面总结列表了一些常用工具.trace tool:最后也列举了最近hadoop社区在开发发展 ...

  5. iOS便捷开发工具分享

    项目/代码优化工具 1.objec_dep,可以了解项目中各个类的关联信息,了解项目中无效文件,知道双向应用的文件. 下载地址: https://github.com/nst/objc_dep 2.b ...

  6. 10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  7. 【转】10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  8. 前端必备PS技巧

    hai,how is it going?I'm MuQing.I come back.哈哈,最近在英语的路上奋战,小秀一下.又好久没写博客了,实习的生活渐行渐远了,回到学校也终于能够坐下来对很多东西进 ...

  9. JVM总结之命令行工具

    jps jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象"pgrep java"或"ps ...

随机推荐

  1. Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)

    题目:DZY Loves Fibonacci Numbers 题意比較简单,不解释了. 尽管官方的题解也是用线段树,但还利用了二次剩余. 可是我没有想到二次剩余,然后写了个感觉非常复杂度的线段树,还是 ...

  2. Js跨一级域名同步cookie

    1. 纯Js同步两个域名下的cookie document.cookie = "name=" + "value;" + "expires=" ...

  3. 【iOS开发-32】iOS程序真机调试须要购买调试证书怎么办?

    一.情况 我们在开发iOS程序的时候,一般都是在模拟器上执行查看效果的. 可是,当开完完毕.须要在真机上调试怎么办? 二.官方解决的方法 苹果有为个人和企业开发人员提供调试证书和公布证书.个人版99美 ...

  4. Qt Quick综合实例之文件查看器

    假设你基于Qt SDK 5.3.1来创建一个Qt Quick App项目,项目模板为你准备的main.qml文档的根元素是ApplicationWindow或Window.这次我们就以Applicat ...

  5. android:怎样在TextView实现图文混排

    我们通常在TextView文本中设置文字.但是怎样设置图文混排呢? 我就在这里写一个样例 .我们须要用到一点简单的HTML知识 在TextView中预订了一些类似HTML的标签,通过标签能够使Text ...

  6. 腾讯云SSL证书管理

    2018050608010400y5mbx15awnpwxfhdmd7zqet1i9dzaqkvb6lxzosi4qq5ezbr

  7. PCB SQL SERVER 邮箱配置与发邮件

    一.开启SQL SERVER发邮件功能 --开启发邮件功能 reconfigure with override go reconfigure with override go 二.邮箱配置 1.代码创 ...

  8. Going Home(MCMF)

    http://poj.org/problem?id=2195 题意:在一个n*m的图中,'m'代表人,'H'代表房子,人每移动一次的费用为1,求所有人移动到房子里的最小花费. 思路:最小费用最大流问题 ...

  9. js:正则表达

    一:正则表达对象方法 1:compile()方法   //编译正则表达式 实例:在字符串中全局搜索“man”,并用“person”替换,然后通过compile()方法,改变正则表达式,用person替 ...

  10. jquery插件开发基本步骤

    一.介绍 插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心 ...