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 2top - 18:30:36
up 30
days, 7 min,
1 user, load average:
0.42,
0.48,
0.45Tasks: 163
total, 1
running, 161
sleeping, 1 stopped,
0 zombieCpu(s): 4.7% us,
4.0% sy,
6.3% ni,
82.5% id,
0.4% wa,
0.1% hi,
2.0% siMem: 1033592k total, 955252k used, 78340k free, 208648k buffersSwap: 1052216k total, 728k used, 1051488k free, 360248k cached<==如果加入 k 或 r 时,就会有相关的字样出现在这里喔!PID
USER PR NI
VIRT RES
SHR S %CPU
%MEM
TIME+ COMMAND3981
apache 34
19 84012 11m
7352 S
17.3
1.2
0:00.09
httpd1454
mysql 16
0 289m 40m 2228
S 3.8
4.0
115:01.32
mysqld3985
dmtsai 15
0 2148 904
668 R
3.8
0.1
0:00.03
top1
root 16 0
3552 552
472 S 0.0
0.1
0:08.90
init2
root RT 0
0 0
0 S 0.0
0.0
0:52.76
migration/03
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 -p10604top - 13:53:00
up 51
days, 2:27,
1 user, load average:
0.00,
0.00,
0.00Tasks: 1
total, 0
running, 1 sleeping,
0 stopped,
0 zombieCpu(s): 0.0% us,
0.0% sy,
0.0% ni,
100.0% id,
0.0% wa,
0.0% hi,
0.0% siMem: 385676k total, 371760k used, 13916k free, 131164k buffersSwap: 1020116k total, 880k used, 1019236k free, 95772k cachedPID
USER PR NI
VIRT RES
SHR S %CPU
%MEM
TIME+ COMMAND10604
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.00Tasks: 1
total, 0
running, 1 sleeping,
0 stopped,
0 zombieCpu(s): 0.0% us,
0.0% sy,
0.0% ni,
100.0% id,
0.0% wa,
0.0% hi,
0.0% siMem: 385676k total, 371760k used, 13916k free, 131164k buffersSwap: 1020116k total, 880k used, 1019236k free, 95772k cachedPID
to renice: 10604PID
USER PR NI
VIRT RES
SHR S %CPU
%MEM
TIME+ COMMAND10604
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.00Tasks: 1
total, 0
running, 1 sleeping,
0 stopped,
0 zombieCpu(s): 0.0% us,
0.0% sy,
0.0% ni,
100.0% id,
0.0% wa,
0.0% hi,
0.0% siMem: 385676k total, 371760k used, 13916k free, 131164k buffersSwap: 1020116k total, 880k used, 1019236k free, 95772k cachedRenice PID
10604 to value:
10PID
USER PR NI
VIRT RES
SHR S %CPU
%MEM
TIME+ COMMAND10604
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 即可), 就可以很快的知道啦! ^_^。多多爱用这个好用的东西喔! |
本文深入探讨了Linux系统中的top命令,它能够动态地观察和监测程序资源变化,提供实时的系统资源使用状态。文章通过具体实例展示了如何使用top命令进行资源监控、批量操作以及PID特定程序的观察,同时介绍了top命令中的常用按键指令及其功能。通过实践范例,读者可以学习到如何有效利用top命令进行系统资源管理和优化。
2691

被折叠的 条评论
为什么被折叠?



