文档章节

Linux查看系统进程信息命令总结 (ps/top/pstree)

mac_zhao
 mac_zhao
发布于 2015/06/23 13:43
字数 2145
阅读 3005
收藏 0

linux进程查看系统进程信息命令主要分为:静态进程查看命令(ps)、动态进程查看命令(top)和查看进程树命令(pstree),下面分别介绍这几个进程:

一、静态进程查看 ps

ps命令格式:     ps -aux     查看系统所有进程

                          ps -lA        查看所有系统的数据

                          ps axjf       连通部分进程树状态

     -A:与-e意思一样,表列出所有进程

     -a :不与terminal有关的进程

     -u:有效用户相关的进程

      x:通常与a这个参数一起用,可以列出完整信息

输出格式:  l:较仔细列出该pid信息

                   j:工作格式

                  -f:做一个更为完整的输出


ps -l:仅查看自己的bash相关进程

[plain] view plain copy
  1. zhouyl@ubuntu :~$ ps -l  
  2. F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD  
  3. 0 S  1000 20257 20248  0  80   0 -  6067 wait   pts/7    00:00:00 bash  
  4. 0 R  1000 21392 20257  0  80   0 -  2466 -      pts/7    00:00:00 ps  

F:进程标志

     4:表示权限为root

     1:表示只能复制,不能执行

S:表示进程的状态(STAT)

     R:running表示正在运行状态

     S:sleep表示沉睡状态,但是可以唤醒

     D:表示沉睡状态,不能唤醒,通常这个进程可能在等待I/O的情况

     T:stop表示停在状态,例如暂停的后台工作或出错进程

     Z:僵尸进程,进程已经终止但不能提出内存外

UID/PID/PPID:表示用户的UID/进程的PID号码/此进程的父进程PID号码

C:表示CPU的使用率,单位是百分比

PRI/NI:表示此进程被CPU执行的优先级,数字越小,优先级越高

ADDR:支持该进程在内存的那个部分,若该进程正在运行这表示为“-”

SZ:表示该进程占用了多少内存

WCHAN:表示该进程是否运行,若在运行这表示为“-”

TTY:表示登陆终端,若是远程登陆表示为pts/h

TIME:表示该进程使用CPU的时间

CMD:command,表示那个命令启动的该进程


下面介绍 ps -aux     查看系统所有进程

[plain] view plain copy
  1. <span style="font-size:18px">zhouyl@ubuntu :~$ ps aux  
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND  
  3. root         1  0.0  0.0  24564  2444 ?        Ss   08:19   0:00 /sbin/init  
  4. root         2  0.0  0.0      0     0 ?        S    08:19   0:00 [kthreadd]  
  5. root         3  0.0  0.0      0     0 ?        S    08:19   0:04 [ksoftirqd/0]  
  6. </span>  

USER:表示该进程所属用户

PID:该进程的PID号

%CPU:表示该进程的CPU占用率

%MEM:表示该进程的物理内存占用率

VSZ:表示该进程占用了多少虚拟内存量

RSS:表示该进程占用了多少固定内存量

TTY:表示登陆端口

STAT:和上面介绍的进程状态一样(R/S/D/T/Z进程)

START:该进程触发启动的时间

TIME:表示该进程占用CPU的时间

COMMAND:表示触动该进程的命令 


僵尸进程

通常,造成僵尸进程的原因是该进程应该已经执行完毕,或是因故应该要终止了,但是该进程的父进程却无法完整将该进程结束掉,而造成那个进程一直在内存当中。如果你发现某个进程的CMD后面接上<defunct>时,就代表该进程是僵尸进程,例如:

1  2598  2598  2598 ?           -1 Ss       0   0:00 /usr/sbin/hcid<defunct>

当系统不稳定的时候就容易造成所谓的僵尸进程,可能是因为程序写的不好,或者用户操作不当所造成的。如果系统出现很多僵尸进程,记得要找出父进程,然后好好跟踪,好好优化主机环境。如果实在不行就只有reboot了

 

二、动态进程:top

top命令格式

[plain] view plain copy
  1. <span style="font-size:18px"> top [-d | -bnp]   
  2. -d:表示界面刷新时间,单位秒,默认是5秒   
  3. -b:以批次的方式进行top,还有更多的参数可以使用   
  4.     通常会搭配数据重定向来讲批处理的结果输出成为文件   
  5. -n:与-b搭配,意思是需要进行几次top的输出结果   
  6. -p:查看直接进程,后面接进程号   
  7.   ?:显示在top当中可以输入的按键命令   
  8.   P:以cpu使用率来排名   
  9.   M:以内存的使用率来排名   
  10.   N:以PID来排名   
  11.   T:以进程使用CPU时间累加排名   
  12.   k:给予某个PID一个信号   
  13.   r:给予某个PID重新制定一个nice值   
  14.   q:退出离开 </span>  
[plain] view plain copy
  1. <span style="font-size:18px">zhouyl@ubuntu :~$ top  
  2.   
  3. top - 10:44:15 up  2:24,  6 users,  load average: 2.09, 2.70, 2.98  
  4. Tasks: 209 total,   3 running, 206 sleeping,   0 stopped,   0 zombie  
  5. Cpu(s): 29.9%us, 17.4%sy,  0.0%ni, 52.4%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st  
  6. Mem:   5046272k total,  4752156k used,   294116k free,  1291300k buffers  
  7. Swap:   262140k total,       16k used,   262124k free,  1516100k cached  
  8.   
  9.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                            
  10.  2813 zhouyl    20   0 1269m 200m  41m R   28  4.1  33:49.24 compiz                                                                                             
  11.  1478 root      20   0  247m 130m  18m S   18  2.6  25:49.51 Xorg                                                                                               
  12.  3972 zhouyl    20   0 1707m  71m  35m S   10  1.5  14:19.49 vlc                                                                                                
  13.  3218 zhouyl    20   0  806m 158m  49m S    6  3.2  16:19.85 chrome                                                                                             
  14.  3607 zhouyl    20   0  985m 130m  27m S    6  2.6   2:05.07 chrome </span>  

这里有六行

第一行:表示现在时间,系统开机到现在的时间,多少登陆用户。负载均衡,在1、5、15分钟系统平均运行几个进程的意思,越小代表系统越闲置,若高于1得注意你的系统压力是否太过繁复了


第二行:表示系统共运行了多少进程,他们分别的运行状态,注意后面的zombie一般为0如果为其他数,就要注意了,看看到是那个进程是僵尸进程


第三行:表示当下CPU整体负载,需要特别注意的是%wa,这个选项代表的是I/Owait,通常你的系统会变慢都是I/O产生的问题比较大,如果你是多核设备可以按“1”切换查看不同的CPU负载情况

下面是我们在 top 命令看到的 CPU 占用率信息及各项值含义:

Cpu(s): 29.9%us, 17.4%sy, 0.0%ni, 52.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
us: User time     用户时间(User time):表示 CPU 执行用户进程的时间,包括 nices 时间。通常期望用户空间 CPU 越高越好。
sy: System time    系统时间(System time):表示 CPU 在内核运行时间,包括 IRQ 和 softirq 时间。系统 CPU 占用率高,表明系统某部分存在瓶颈。通常值越低越好。
ni: Nice time     Nice 时间(Nice time):系统调整进程优先级所花费的时间。
id: Idle time        空闲时间(Idle time):系统处于空闲期,等待进程运行。
wa: Waiting time    等待时间(Waiting time):CPI 在等待 I/O 操作完成所花费的时间。系统部应该花费大量时间来等待 I/O 操作,否则就说明 I/O 存在瓶颈。    
hi: Hard Irq time    硬中断处理时间(Hard Irq time):系统处理硬中断所花费的时间。    
si: SoftIrq time    软中断处理时间(SoftIrq time):系统处理软中断中断所花费的时间。
st: Steal time    丢失时间(Steal time):被强制等待(involuntary wait)虚拟 CPU 的时间,此时 hypervisor 在为另一个虚拟处理器服务。


第四行与第五行:表示物理内存与虚拟内存使用的情况,swap的使用要越低越好,如果swap使用率较高表示物理内存不足


第六行及以下:

PID:是进程ID

USER:该进程所属用户

PR:priority的缩写,进程的优先级,值越小优先级越高

NI:nice的缩写,与priority有关,值越小优先级越高

%CPU:CPU的使用率

%MEM:内存使用率

TIME+:CPU使用时间的累加

值得注意的是:在top中输入h或者?,可以显示帮助

 

三、查看进程树命令:pstree

pstree命令格式

[plain] view plain copy
  1. pstree [-A|U] [-up]   
  2. -A:各进程间连接用ASCII字符连接   
  3. -U:该进程之间连接用utf8字符连接   
  4. -p:同时显示PID   
  5. -u:同时列出每个进程的所属账号名称   
  6. zhouyl@ubuntu :~$ pstree -Aup  
  7. init(1)-+-NetworkManager(1344)-+-dhclient(1707)  
  8.         |                      |-dnsmasq(2560,nobody)  
  9.         |                      |-dnsmasq(2645,nobody)  
  10.         |                      |-{NetworkManager}(1374)  
  11.         |                      `-{NetworkManager}(1708)  
  12.         |-accounts-daemon(2184)---{accounts-daemon}(2185)  
  13.         |-acpid(1417)  
  14.         |-atd(1429,daemon)  
  15.         |-avahi-daemon(1331,avahi)---avahi-daemon(1332)  
  16.         |-bamfdaemon(2892,zhouyl)---{bamfdaemon}(2896)  
  17.         |-bluetoothd(1319)  
  18.         |-chrome(3218,zhouyl)-+-chrome(3313)  
  19.         |                     |-chrome(3690)-+-{chrome}(3693)  
  20.         |                     |              |-{chrome}(3694)  
  21.         |                     |              `-{chrome}(3695)  
  22.         |                     |-chrome(3718)-+-{chrome}(3719)  
  23.         |                     |              |-{chrome}(3720)  
  24.         |                     |              `-{chrome}(3721)  

© 著作权归作者所有

共有 人打赏支持
mac_zhao
粉丝 42
博文 249
码字总数 304671
作品 0
普陀
程序员
私信 提问
Linux下查看进程和线程的方法

篇一 : Linux下查看进程和线程的方法 在Linux中查看线程数的三种方法 1、top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。 2、...

井然有序
06/26
0
0
你需要知道的16个Linux服务器监控命令

英文原文: hp.com,翻译:oschina 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linux 发行版会...

Ryan-瑞恩
2014/11/27
0
0
linux系统性能分析命令ps.pstree及top详解

linux系统常用的性能分析命令有ps pstree及top等,今天我们详细看下各命令的使用 1.ps ps命令是平时比较常用的查看进程的命令,ps 是显示瞬间进程的状态,并不动态变化;如果想对进程运行时间...

zhangdiandong
2014/06/27
0
0
Linux系统管理——进程和计划任务

1、进程 进程的管理是内核的重要功能之一,了解和熟练的完成进程管理是系统安全、性能效率优化的基础。 1.1、进程的性能及功能 内核的功用: 进程管理、文件系统、网络功能、内存管理、驱动程...

烽火狼烟_Gk
01/31
0
0
Linux服务器的16个监控命令

想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令。一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统管理员打下了基础。 你可以通过图形化用户界面(GUI)程序来获取...

shezjl
2015/06/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
0
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
2
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
0
0
Python的安装及文件类型、变量

一、为什么学习python 服务于大数据、人工智能、自动化运维。 简单易学 代码简洁 薪资高 近几年越来越火 二、Python的安装 linux 系统默认安装, CentOS7 默认安装了python2.7 安装ipython y...

枫叶云
昨天
1
0
JeeSite 4.x 树形结构的表设计和用法

有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章。 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理...

ThinkGem
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部