linux top命令详解
top命令是linux下产用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,同windows中的任务管理器。下面介绍下它的使用方法:
[root@test etc]# top
top - 16:20:18 up 243 days, 19:58, 2 users, load average: 3.09, 2.15, 1.23
Tasks: 328 total, 1 running, 326 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.5% us, 2.4% sy, 0.0% ni, 85.0% id, 12.1% wa, 0.0% hi, 0.0% si
Mem: 8173716k total, 8132856k used, 40860k free, 111376k buffers
Swap: 8385920k total, 366748k used, 8019172k free, 6481144k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 4772 436 404 S 0.0 0.0 1:21.48 init
一、统计信息区
前五行是系统整体的统计信息
(1)、第一行是任务列队信息,类似于uptime命令的执行结果
[root@test etc]# uptime
16:20:18 up 243 days, 19:58, 2 users, load average: 3.09, 2.15, 1.23
介绍如下:
16:20:18 ,当前时间
up 243 days,19:58 ,系统运行的天数和系统运行时间,格式为时:分
2 users,当前登录用户数
load average 3.09, 2.15, 1.23 ,系统负载,即任务队列平均长度。(3.09, 2.15, 1.23 )这三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。
(2)、第二、三行为进程和cpu信息,如果有多个cpu时,这些内容可能会超过两行。
介绍如下:
Tasks: 328 total,进程总数
1 running,正在运行的进程数
326 sleeping,睡眠的进程
0 stopped,停止的进程数
1 zombie ,僵尸进程数
------------------------
Cpu(s): 0.5% us,用户空间占用cpu百分比
2.4% sy,内核空间占用cpu百分比
0.0% ni,用户进程空间内改变过优先级的进程占用cpu百分比
85.0% id,空闲cpu百分比
12.1% wa,等待输入输出的cpu时间百分比
0.0% hi
0.0% si
(3)、最后两行为内存信息
内容如下:
Mem: 8173716k total,物理内存总量
8132856k used,使用的物理内存总量
40860k free,空闲内存总量
111376k buffers,用作内核缓存的内存量
----------------------
Swap: 8385920k total,交换区总量
366748k used,使用的交换区总量
8019172k free,空闲交换区总量
6481144k cached,缓存的交换区总量
内存和交换区的关系:
内存中的内容被换出倒交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内存已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入
二、进程信息区
PID,进程ID
USER,进程所有者的用户名
PR,优先级
NI,nice值/负值表示高优先级,正值表示低优先级
VIRT,进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES,进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR,共享内存大小,单位kb
S ,进程状态(D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程)
%CPU,上次更新到现在的CPU时间占用百分比
%MEM,进程使用的物理内存百分比
TIME+,进程使用的CPU时间总计,单位1/100秒
COMMAND,命令名/命令行
默认情况下只显示比较重要的PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,COMMAND列。
可以通过下面的快捷键来个更改显示内容:
1.按f键可以选择显示的内容。按f键之后会显示列的列表,按a-z即可显示或隐藏对应的列,最后按回车键确定。
2.按o键可以改变显示的顺序,按小写的a-z可以将相应的列向右移动,而大写的A-Z可以将相应的列向左移动。最后按回车键确定。
3.按大写的F或O键,然后将a-z可以将进程按照相应的列进行排序。而大写的R键可以将当前的排序倒转。
三、命令使用
(1).命令名称:top
(2).命令作用
显示系统当前的进程和其他状况;top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行改命令,它将独占前台,知道用户终止该程序为止.top命令提供了对系统处理器状态监视.显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
(3).环境设置
在linux下使用
(4).使用方法
1.使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
2.参数说明
d 制定每两次屏幕信息刷新之间的时间间隔。当然使用s交互命令来改变。
p 通常制定监控进程ID来仅仅监控某一个进程的状态
q 该选项将使top没有任何延迟的进程刷新,如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
i 使top不显示任何限制或者僵死进程
c 显示整个命令行而不只是显示命令名
3.其他
top命令执行过程中可以使用的一些交互命令。从使用角度来看,梳理的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
ctrl+L 擦除并且重写屏幕
h或者?显示帮助画面,给出一些简短的命令总结说明
k 终止一个进程。系统将提升用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 推出程序。
r 重新安排一个进程优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10.
S 切换到累计模式。?
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值5 s。需要注意的是如果设置太小的时间,很可能引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也回大大增加。
f或者F从当前显示中添加或删除项目。
o或者O改变显示项目的顺序。
l切换显示平均负载和启动时间信息。
m 切换显示内存信息
t 切换显示进程和cpu状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中。这是写入top配置文件的推荐方法。