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,如下图所示