Linux top命令介绍

top:动态观察程序的变化

 

[root @linux  ~] # top [-d] | top [-bnp]
参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5  秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID  来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
P  :以 CPU  的使用资源排序显示;
M  :以 Memory 的使用资源排序显示;
N  :以 PID  来排序喔!
T  :由该 Process 使用的 CPU  时间累积 ( TIME +) 排序。
k :给予某个 PID  一个讯号 (signal)
r :给予某个 PID  重新制订一个 nice 值。

 

 

范例1:每两秒钟更新一次 top ,观察整体信息

 

[root @linux  ~] # top -d 2
top - 18 : 30 : 36  up 30  days, 7  min, 1  user, load average: 0 . 42 , 0 . 48 , 0 . 45
Tasks: 163  total, 1  running, 161  sleeping, 1  stopped, 0  zombie
Cpu(s): 4 . 7 % us, 4 . 0 % sy, 6 . 3 % ni, 82 . 5 % id, 0 . 4 % wa, 0 . 1 % hi, 2 . 0 % si
Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
<==如果加入 k 或 r 时,就会有相关的字样出现在这里喔!
 
PID  USER  PR  NI  VIRT  RES  SHR  S  % CPU  % MEM  TIME + COMMAND
3981  apache 34  19  84012  11m 7352  S  17 . 3  1 . 2  0 : 00 . 09  httpd
1454  mysql 16  0  289m 40m 2228  S  3 . 8  4 . 0  115 : 01 . 32  mysqld
3985  dmtsai 15  0  2148  904  668  R  3 . 8  0 . 1  0 : 00 . 03  top
1  root 16  0  3552  552  472  S  0 . 0  0 . 1  0 : 08 . 90  init
2  root RT  0  0  0  0  S  0 . 0  0 . 0  0 : 52 . 76  migration/ 0
3  root 34  19  0  0  0  S  0 . 0  0 . 0  0 : 03 . 01  ksoftirqd/ 0

 

 

范例2:将 top 的信息进行 2 次,然后将结果输出到 /tmp/top.txt

 

[root @linux  ~] # top -b -n 2 > /tmp/top.txt
# 这样一来,嘿嘿!就可以将 top 的信息存到 /tmp/top.txt 档案中了。

 

 

范例3:假设 10604 是一个已经存在的 PID ,仅观察该程序?

 

[root @linux  ~] # top -d 2 -p10604
top - 13 : 53 : 00  up 51  days, 2 : 27 , 1  user, load average: 0 . 00 , 0 . 00 , 0 . 00
Tasks: 1  total, 0  running, 1  sleeping, 0  stopped, 0  zombie
Cpu(s): 0 . 0 % us, 0 . 0 % sy, 0 . 0 % ni, 100 . 0 % id, 0 . 0 % wa, 0 . 0 % hi, 0 . 0 % si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
 
PID  USER  PR  NI  VIRT  RES  SHR  S  % CPU  % MEM  TIME + COMMAND
10604  root 16  0  5396  1544  1244  S  0 . 0  0 . 4  0 : 00 . 07  bash

 

 

范例四:承上题,上面的 NI 值是 0 ,想要改成 10 的话?

 

# 在范例三的 top 画面当中直接按下 r 之后,会出现如下的图样!
top - 13 : 53 : 00  up 51  days, 2 : 27 , 1  user, load average: 0 . 00 , 0 . 00 , 0 . 00
Tasks: 1  total, 0  running, 1  sleeping, 0  stopped, 0  zombie
Cpu(s): 0 . 0 % us, 0 . 0 % sy, 0 . 0 % ni, 100 . 0 % id, 0 . 0 % wa, 0 . 0 % hi, 0 . 0 % si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
PID  to renice: 10604
 
PID  USER  PR  NI  VIRT  RES  SHR  S  % CPU  % MEM  TIME + COMMAND
10604  root 16  0  5396  1544  1244  S  0 . 0  0 . 4  0 : 00 . 07  bash
# 之后,可以输入 nice 值了!
top - 13 : 53 : 00  up 51  days, 2 : 27 , 1  user, load average: 0 . 00 , 0 . 00 , 0 . 00
Tasks: 1  total, 0  running, 1  sleeping, 0  stopped, 0  zombie
Cpu(s): 0 . 0 % us, 0 . 0 % sy, 0 . 0 % ni, 100 . 0 % id, 0 . 0 % wa, 0 . 0 % hi, 0 . 0 % si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
Renice PID  10604  to value: 10
 
PID  USER  PR  NI  VIRT  RES  SHR  S  % CPU  % MEM  TIME + COMMAND
10604  root 30  10  5396  1544  1244  S  0 . 0  0 . 4  0 : 00 . 07  bash

 

 

 

top 也是个挺不错的程序观察工具!但不同于 ps 是静态的结果输出, top 这个程序可以持续的监测 (monitor) 整个系统的程序工作状态,例如上面的范例一所示啊! 在预设的情况下,每次更新程序资源的时间为 5  秒,不过,可以使用 -d 来进行修改。 top 主要分为两个画面,上面的画面为整个系统的资源使用状态,基本上总共有六行, 显示的内容依序是:
• 第一行:显示系统已启动的时间、目前上线人数、系统整体的负载(load)。 比较需要注意的是系统的负载,三个数据分别代表 1 , 5 , 10  分钟的平均负载。 一般来说,这个负载值应该不太可能超过 1  才对,除非您的系统很忙碌。 如果持续高于 5  的话,那么.....仔细的看看到底是那个程序在影响整体系统吧!
• 第二行:显示的是目前的观察程序数量,比较需要注意的是最后的 zombie 那个数值,如果不是 0  ,嘿嘿!好好看看到底是那个 process 变成疆尸了吧?!
• 第三行:显示的是 CPU  的整体负载,每个项目可使用 ? 查阅。需要观察的是 id (idle) 的数值,一般来说,他应该要接近 100 % 才好,表示系统很少资源被使用啊! ^ _ ^。
• 第四行与第五行:表示目前的物理内存与虚拟内存 (Mem/Swap) 的使用情况。
• 第六行:这个是当在 top 程序当中输入指令时,显示状态的地方。 例如范例四就是一个简单的使用例子。
至于 top 底下的画面,则是每个 process 使用的资源情况。比较需要注意的是:
PID  :每个 process 的 ID  啦!
USER :该 process 所属的使用者;
PR  :Priority 的简写,程序的优先执行顺序,越小越早被执行;
NI  :Nice 的简写,与 Priority 有关,也是越小越早被执行;
• % CPU CPU  的使用率;
• % MEM :内存的使用率;
TIME +: CPU  使用时间的累加;
一般来说,如果鸟哥想要找出最损耗 CPU  资源的那个程序时,大多使用的就是 top 这支程序啦!然后强制以 CPU  使用资源来排序 (在 top 当中按下 P  即可), 就可以很快的知道啦! ^ _ ^。多多爱用这个好用的东西喔!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值