`

top:动态观察程序的变化

 
阅读更多

转载自:http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html

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 有关,也是越小越早被执行;
• %CPUCPU 的使用率;
• %MEM:内存的使用率;
TIME+:CPU 使用时间的累加;
一般来说,如果鸟哥想要找出最损耗 CPU 资源的那个程序时,大多使用的就是 top 这支程序啦!然后强制以 CPU 使用资源来排序 (在 top 当中按下 P 即可), 就可以很快的知道啦! ^_^。多多爱用这个好用的东西喔!
分享到:
评论

相关推荐

    C#程序实现控件位置大小随窗体变化而变化

    为了让用户界面更加友好和适应性更强,有时我们需要让这些控件的位置和大小能够随着窗体尺寸的变化而动态调整。这涉及到Windows Forms中的布局管理和控件锚定(Docking)或自动调整大小(Auto-sizing)概念。 1. **...

    uart_top.rar_fpga 串口_uart_串口通讯程序

    本项目"uart_top.rar_fpga 串口_uart_串口通讯程序"提供了一个基于FPGA的UART实现,适用于初学者学习串口通信及数码管显示。 UART是一种全双工的通信协议,它允许设备同时发送和接收数据,通常用于低速通信,如控制...

    observerect观察一个DOM元素的矩形Rect

    `observe-rect`通过事件驱动的方式工作,当元素的Rect发生变化时,它会触发一个自定义事件,使得开发者可以在事件处理程序中响应这些变化。这种方式避免了不必要的计算,提高了性能。 5. **使用示例**: 使用`...

    动态显示CPU利用率

    - 故障排查:通过观察CPU利用率的变化,可以帮助定位性能问题的源头,比如某个进程异常消耗资源。 总之,动态显示CPU利用率是一个强大的工具,它能够帮助我们实时了解系统的运行状态,及时发现并解决问题,提高系统...

    语言程序设计课后习题答案

    1-1 简述计算机程序设计语言的发展历程。 解: 迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。 1-2 面向对象的编程语言有哪些...

    基于TIA博途的堆栈算法(先进后出)SCL语言程序(V15版本).docx

    在TIA博途中,可以通过图形化界面进行仿真测试,动态观察堆栈数据的变化。例如,向`ITEM`输入不同的数值,通过触发`PUSH`信号观察数据是否正确入栈,以及通过`POP`信号验证出栈操作。这种方法可以帮助开发者直观地...

    top仿真器软件操作手册

    TOP仿真器提供了强大的波形查看器,可以显示和分析多通道、多层次的信号变化,帮助用户深入理解设计行为。 7. **错误诊断与调试** 遇到问题时,TOP仿真器提供了详细的错误报告和警告提示,指导用户定位和修复错误...

    GridLayout实例程序

    GridLayout是Android布局系统中的一种,它是视图容器,允许我们以网格的形式排列子视图。在Android开发中,GridLayout提供了一种灵活的方式来...在实践中,可以尝试修改不同的属性值,观察布局的变化,以此加深理解。

    VB程序设计教程实验指导与习题解答上机答案.doc

    在实验中,可以通过单击加粗或下划线按钮观察到标签样式的变化。 3. **恢复默认样式**: `Command4_Click`事件则用来恢复`Label1`的默认样式,将字体大小设为10,同时取消加粗和下划线,通过设置`FontSize`、`...

    2018年8月中国小程序行业发展研究报告.pdf

    通过这些指标,我们可以更直观地观察到小程序的发展态势,了解市场的竞争格局。 在市场热点事件的分析中,腾讯中期财报特别强调了小程序对广告业务增长的贡献,这一现象的背后,是微信朋友圈和小程序广告的有效推广...

    java程序设计课程--实验报告-实验04借鉴.pdf

    - 步骤4-6通过修改变量值观察图形变化,理解坐标和尺寸对图形的影响。 - 步骤7要求创建嵌套和相交的矩形,展示了逻辑判断和几何形状组合的应用。 - 步骤8通过改变颜色和形状,实现了不同图形的区分,同时练习了...

    行业数据-2019年10月视频平台APP活跃人数top10.rar

    标题中的“行业数据-2019年10月视频平台APP活跃人数top10”表明这是一份关于2019年10月期间,中国市场上最受欢迎的十大视频应用程序的用户活跃度报告。这份数据可能包含了各视频APP的月活跃用户数(MAU)、日活跃...

    填坑总结:python内存泄漏排查小技巧(csdn)————程序.pdf

    通过objgraph,分析了新旧服务中TOP50变量类型的数量变化。初期观察未发现显著差异。然而,在对一批异常图片进行测试后,发现dict、function、method、tuple、traceback等类型的对象数量急剧增加,同时镜像内存也在...

    易观分析-疫情前后音乐用户行为变化图鉴-2020.11-16页精品报告2020.pdf

    易观分析发布的这份报告,标题为《疫情前后音乐用户行为变化图鉴》,聚焦于疫情期间音乐用户行为的变化情况,这对于理解当前数字音乐市场的动态以及疫情对文化产业影响具有指导意义。从描述和内容摘录中,虽然无法...

    程序化初级交易模型总结.doc

    根据给定文件的信息,我们可以将其中涉及的关键技术点和概念进行详细解读,这些技术点主要集中在股票技术分析领域,特别是程序化交易模型的设计与应用方面。以下是对各个知识点的深入解析: ### 1. 阶段涨幅 **定义...

    TLD exe文件可直接运行

    6. **观察效果**:在运行程序后,用户或开发者通过输出、界面变化、日志记录等方式来观察程序运行的效果,确认功能正确性和性能表现。 总之,"TLD exe文件可直接运行"涉及了软件开发的多个环节,包括代码编写、编译...

    ru--con-讶州广告程序化购买报告(英文)-2020.6-17页精品报告2020.pdf

    然而,COVID-19带来的市场变化无疑为程序化广告带来了新的挑战和机遇,需要广告行业对此进行进一步的观察和分析。 综上所述,这份报告不仅为了解亚洲程序化广告市场提供了宝贵的洞察,也为该地区的广告主和代理商...

Global site tag (gtag.js) - Google Analytics