top:动态查看进程的变化
转载请出自出处: http://eksliang.iteye.com/blog/2166641
相对于ps是选取一个时间点的进程状态,top则可以持续检测进程运行的状态。使用方法如下:
      top [-d 数字]  |  top  [-bnp]
参数:
-d:后面可以接秒数,就是整个进程界面更新的秒数。默认是5秒
-n:与-b搭配,意义是,需要进行几次top的输出结果。
-p:指定某些个PID来进行查看监测而已。
在top执行过程当中可以使用的按键命令:
	?:显示在top当中可以输入的按键命令
	P:以CPU的使用资源排序显示
	M:以内存的使用资源排序显示
	N:以PID来排序
	T:由该进程使用的CPU时间累积(TIME+)排序
	K:给予某个PID一个信号(signal);
	r:给予某个PID重新定制一个nice的值
	q:离开top软件的按键
    
    top这个程序可以持续检测整个系统的进程工作状态。在默认情况下,每次更新进程资源的时间为5秒,不过,可以使用-d来进行修改。top主要分为两个界面,上半部分的界面为整个系统的资源使用状态,下半部分界面,则为每个进程使用的资源情况
在终端直接输入top命令,如下所示:
      top - 17:32:50 up 12:09,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1030680k total,   854936k used,   175744k free,    76468k buffers
Swap:  2064376k total,        0k used,  2064376k free,   453240k cached
  
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                    
  595 root      20   0     0    0    0 S  0.3  0.0   0:01.45 flush-8:0                                                                                                  
 1490 root      20   0 28372 3980 3288 S  0.3  0.4   0:54.73 vmtoolsd                                                                                                   
    1 root      20   0  2900 1444 1224 S  0.0  0.1   0:01.77 init                     
    .....省略
    
    先看上半部分:总共分为五行
第一行(top):这一行显示的信息分别为:
当前系统的时间,即17:32:50;开机到目前为止所经过的时间,即up 12:09;
1 user:当前登录系统的人数;
load average: 0.00, 0.00, 0.00:系统在最近1、5、15分钟内的平均负载。
第二行(tasks):这一行显示的是进程的总量与进程的状态
| 83 total | 进程的总量 | 
| 1 running | 正在运行的进程数 | 
| 82 sleeping | 挂起的进程数 | 
| 0 stopped | 停止的进程数 | 
| 0 zombie | 僵尸进程数 | 
第三行(Cpu(s)):这一行显示的是cpu的整体负载
| 0.0%us | 用户空间占用CPU的百分比 | 
| 0.7%sy | 系统空间占用CPU的百分比 | 
| 0.0%ni | 用户空间内改变过优先级的进程占用CPU百分比 | 
| 99.3%id | 空闲CPU百分比 | 
| 0.0%wa | 等待I/O输入输出的进程占用百分比 | 
第四行(Mem):表示目前系统物理内存的使用情况
| 1030680k total | 物理内存总量 | 
| 854936k used | 已经使用的内存总量 | 
| 17616k free | 剩余的内存总量 | 
| 76468k buffers | 用作内核缓存的内存量 | 
第五行(Swap):表示目前系统虚拟内存的使用情况
| 2064376k total | 虚拟内存的总量 | 
| 0k used | 已经使用的虚拟内存总量 | 
| 2064376k free | 剩余虚拟的内存总量 | 
| 453240k cached | 物理内存跟虚拟内存进行交换的缓冲区大小 | 
在看下半部分:每个进程的使用资源情况
| PID | 进程id | 
| USER | 进程所有者的用户名 | 
| PR NI | 这两个代表进程的优先级,越小在同一个时间片被CPU抢到的概率越大 | 
| VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES | 
| RES | 进程使用的、未被换出的物理内存大小,单位kb | 
| SHR | 共享内存大小,单位kb | 
| S | 进程状态。D=不可中断的睡眠状态、R=运行、S=睡眠、T=跟踪/停止、Z=僵尸进程 | 
| %CPU | 上次更新到现在占用CPU的百分比 | 
| %MEM | 进程使用的物理内存的百分比 | 
| COMMAND | 命令名 | 
top默认使用CPU的使用率(%CPU)进行排序,我一般喜欢使用内存的使用率进行排序,这个时候可以按下“M”,若要恢复则按下“P”即可。
如果你要将top的结果输出成文件时,可以这样做
参考实例 :将top的信息进行2次,然后将内容重定向到./top.txt
      [root@localhost test]# top -b -n 2 >> ./top.txt
    
    参考实例 :查看单一进程
我们自己的bash PID可由$$变量获得,使用top持续查看该PID
      [root@localhost test]# echo $$
8612
[root@localhost test]# top -p 8612 
    
    参考实例 :修改进程的优先级
在上述实例中,直接按下r之后,会出现如下图所示
      
      
         
      
      
       这个时候输入PID号码,按回车,这个时候输入10,如下图所示
    


 
       
					 
					