top命令解析

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

top --h
    top: procps version 3.2.8
usage:    top -hv | -abcHimMsS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

语法
top(选项)
选项
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
top交互命令
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。

实例

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached


   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                         
   338 admin     20   0 9561m 5.4g  11m S  3.7  2.1  95:30.45 java                                                                                                                                             
426220 admin     20   0 1893m 803m  11m S  0.7  0.3 208:00.06 java                                                                                                                                             
    87 admin     20   0 4855m 397m  11m S  0.3  0.2 826:49.38 java                                                                                                                                             
426165 admin     20   0 1897m 798m  11m S  0.3  0.3 204:02.09 java                                                                                                                                             
     1 root      20   0 11300 1152 1112 S  0.0  0.0   4:21.12 sh                                                                                                                                               
    15 root      20   0  114m 1044  660 S  0.0  0.0  19:05.45 crond                                                                                                                                            
    30 root      20   0 66652  560  468 S  0.0  0.0   5:01.36 sshd                                                                                                                                             
    32 root      20   0  4072  476  464 S  0.0  0.0   0:00.00 sleep                                                                                                                                            
 94931 root      20   0  138m 1668 1304 S  0.0  0.0   0:00.00 su                                                                                                                                               
 94932 root      20   0  105m 2068 1532 S  0.0  0.0   0:07.98 bash 

解释:
1、第一行:从左到右分别为: 当前的时间 、系统累积以及运行的时间 、当前登入用户的数量 、当前的系统负载。

系统负载三个数字的含义
一般来说,系统每隔5秒钟,会检查一下当前系统活跃的进程数。这个活跃进程要满足3个前提 
* 它没有在等待I/O操作的结果 
* 它没有主动进入等待状态(也就是没有调用’wait’) 
* 没有被停止(例如:等待终止) 
而系统负载的三个数值分别表示的是1分钟,5分钟和15分钟系统负载的平均值。 
对于一个具有n核处理器的系统来说,当系统负载的load average为n的时候,表示系统差不多刚刚好满负荷,但是已经没有额外的经历去处理其它任务了。
当load average 大于n的时候,表示系统超负荷运转。一般来说为了使系统能正常运转,我们经验上,任务load average / n < 0.7 是一般能接受的情况。

2、第二行:主要显示进程和cpu的信息,注意在top命令中task指进程。第二行的信息依次为 
* 进程总数 
* 正常运行的进程数量 
* 休眠的进程总数 
* 停止的进程总数 
* 僵死进程总数 
* us用户进程占用cpu资源的百分比 
* sy内核态进程占cpu资源的百分比 
* ni用户进程空间内改变过优先级的进程占cpu资源的百分比 
* id空闲cpu的百分比 
* wa 等待输入输出的进程占cpu资源的百分比 
* hi 硬中断占用的百分比 
* si软中断占用的百分比 
* st 虚拟机占用百分比

3、第三行/内存相关信息
内存信息

mem
物理内存总量
使用的物理内存总量
空闲的物理内存总量
用在内核缓存的内存总量
swap
交换区内存总量
使用的交换区的总量
空闲的交换区总量
缓存的交换区总量。
Swap:表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap。

上面这句话只是一般情况下的理想状态,实际上内核可能会主动地将一些暂时不用的内存块写入到磁盘的交换区(swap),这样节约出来的内存就可以用作他用了。这些被写入swap的内存,只有当实际需要的时候,才会被重新写入内存。 
注意:当物理内存空闲的时候,也有可能会有大量的swap。原因在于,有可能存在这么一种情况,某一个进程,需要大量的物理内存,而当这个进程结束的时候,这个进程在生命周期中,被交换进入swap的内存,并不会主动释放。操作系统总是在实际需要的时候才去做处理,这样就会出现在某一些特定的时段,物理内存很空闲,而swap使用量却很高的情况。
各个参数详解

top - 09:44:56[当前系统时间],
16 days[系统已经运行了16天],
1 user[个用户当前登录],
load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
Tasks: 145 total[总进程数],
2 running[正在运行的进程数],
143 sleeping[睡眠的进程数],
0 stopped[停止的进程数],
0 zombie[冻结进程数],
Cpu(s): 99.8%us[用户空间占用CPU百分比],
0.1%sy[内核空间占用CPU百分比],
0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
0.0%hi[],
0.0%st[],
Mem: 4147888k total[物理内存总量],
2493092k used[使用的物理内存总量],
1654796k free[空闲内存总量],
158188k buffers[用作内核缓存的内存量]
Swap:  5144568k total[交换区总量],
56k used[使用的交换区总量],
5144512k free[空闲交换区总量],
2013180k cached[缓冲的交换区总量],

进程信息
参看Linux中top的说明 
* pid : Process Id进程id,这个是进程的唯一标识符。这个id,会被周期性地复写,但是不会从0开始。 
* ppid : Parent Process PID父进程的pid 
* ruser : Real User Name, 当前进程真实的用户名称 
* uid : User Id. 进程拥有者的有效用户id 
* USER : User Name,生效用户名称 
* group : group name 用户组民粹 
* TTY : Controlling Tty 控制终端的名称。启动进程的终端名称。然而当一个进程不是从终端中被访问的时候,你将会看到问号(????) 
* pr : Priority 进程的优先级 
* ni : Nice Value.优先级的值,负数表示优先级很高,正数表示优先级比较低。 
* p : Last userd CPU (SMP).在多处理环境中,表示最近一次使用的cpu序号。 
* %cpu : cpu的使用量占总cpu时间的百分比 
* TIME : CPU TIME 任务从开始到现在使用的cpu的总时间。 
* TIME + : CPU Time ,hundredths 更为细粒度更为精确的cpu耗时 
* %MES : 进程使用的内存量 
* VIRT : 进程使用的虚拟内存的大小 
* SWAP : 进程使用的交换区的大小 
* RES : Resident Size 驻留内存大小,指进程除去使用交换区swap的内存,使用的物理内存的大小 
* CODE : code size 指代码占用物理内存的大小 
* DATA : Data + Stack size 数据和堆栈占用的大小 
* SHR : Shared Mem size 进程共享内存的大小 
* nFLT : Page Fault Count 缺页总数 
* nDRT : Dirty Pages count 脏页数量 
* S : process status 进程状态 。 分别有D R S T Z ,分别表示【不可中断的休眠】【正在运行】【休眠中】【暂停或者跟踪状态】【僵死状态】,参考 
* Command : Command line or Program name 命令或者进程名称 
* WCHAN : Sleep in Function 显示当前休眠的函数 
* Flages :Task Flags 进程在进程计划中的标准。

参考:

https://blog.csdn.net/u010632868/article/details/51933474/

http://man.linuxde.net/top

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值