`
asdic
  • 浏览: 122433 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux性能分析工具top

阅读更多

top

top命令是最流行的性能工具之一。大多数系统管理员运行top查看Linux和UNIX系统的运行情况。top实用工具提供一种监视进程和Linux整体性能的理想方法。将Linux进程称作任务更准确,但是在本章中我们还是将它们称作进程,因为这个工具也这样称呼它们。1普通用户和root用户都可以运行top。图3-1显示一个空闲系统的典型top输出。

0131855158 1-152.2.6

图3-1  top输出

top显示有两个部分。大约前三分之一显示关于Linux的整体信息,其余行为各个进程信息。如果扩展窗口则显示更多进程而填充整个屏幕。

更全面的Linux信息可以通过使用top之外的几个命令来得到。不过,通过一个命令在一个屏幕上显示所有信息比较理想。第一行显示最近1分钟、5分钟和15分钟的负载平均值。负载平均值表示在CPU上运行或者等待运行多少进程。uptime命令也可以用来显示负载平均值。接下来是进程信息,之后是CPU、内存和交换区。内存和交换区信息与free命令输出类似。在我们确定内存和CPU使用之后的下一个问题是哪些进程正在使用它。

大部分进程信息也可以通过ps命令得到,但是top提供一种更易于阅读的格式。最有用的是用于提供帮助的h,它列出top的其他交互式命令。

3.1.1  添加和移除字段

字段可以从显示中添加或移除。进程输出可以按照CPU、内存或者其他指标排序。这是一个查看什么进程抢夺内存的理想方法。各个Linux发布版本的top语法和交互式选项不同,帮助命令可以快速列出什么命令可用。有许多交互式选项可用,用户应该花费一些时间来试验它们。

图3-2显示Red Hat Enterprise Linux ES release 3的帮助屏幕。

0131855158 1-152.2.6

图3-2  top的帮助屏幕

f命令用来从top输出中添加或者移除字段。图3-3是一个Red Hat Enterprise Linux ES release 3的帮助屏幕,显示什么字段可以添加。

0131855158 1-152.2.6

图3-3  top添加/移除字段的屏幕

图3-4显示一个SUSE Linux 9.0 top的帮助屏幕,可见它们提供的命令差别非常大。

0131855158 1-152.2.6

图3-4  SUSE top的帮助屏幕

3.1.2  解释输出

让我们研究top信息的意义,以top的如下输出为例:

top输出的第一行显示负载平均值信息:

这个输出与uptime的输出类似。从中可看到Linux已经运行时间、当前时间和用户数量,以及1分钟、5分钟和15分钟负载平均值。接下来显示进程概要:

我们看到总共有73个进程,其中72个进程正在休眠,一个进程正在运行,没有僵化进程或者被停止的进程。当一个进程退出并且它的父进程没有通过wait(2)或者waitpid(2)函数等待它时,它就会成为僵化进程。这通常是由于父进程在它的子进程之前退出造成的。不同于进程表中的项,僵化进程不使用资源。停止的进程是已经向它发送STOP信号的进程。更多信息,请参见signal(7)手册页。

接下来是CPU信息:

CPU行描述CPU如何使用它们的CPU周期。top命令报告CPU在用户或者内核模式、运行良好进程以及处在空闲状态时所花费时间的百分比。iowait列显示没有进程在CPU上运行时,处理器等待I/O完成的时间的百分比。irq和softirq列表示处理硬件和软件中断所花费的时间。早于2.6版本的Linux内核不报告irq、softirq和iowait。

接下来是内存信息:

前三个指标提供内存使用的概要,列出了总的可用内存、已使用内存和自由内存,它们都是确定对于Linux内存是否足够所需信息。

接下来五个指标标识已使用的内存如何分配。shrd字段显示共享的内存使用,buff是缓冲使用的内存。分配给内核或者用户进程的内存可以处在三种不同状态:活动(active)、不活动脏(inactive dirty)和不活动干净(inactive clean)。活动在top中用aotv表示,表示该内存最近被使用。不活动脏在top中用in_d表示,表示该内存最近没有使用,可以回收。要回收内存,必须将它的内容写到磁盘,这个进程命名为“清洗”,也可称作内存的第四种临时状态。一旦被清洗,不活动脏内存成为不活动干净内存,在top中用in_c表示。由Norm Murray和Neil Horman合著的Understanding Virtual Memory in Red Hat Enterprise Linux 3是一本优秀的参考书,网址为http:people.redhat.com/nhorman/papers/ rhel3_vm.pdf。

接下来是交换区信息:

av字段是可用的交换区总量,之后是已用数量和自由数量,最后是内核用于缓存的内存数量。

top显示的其余部分是进程信息:

top显示尽可能多的能适合屏幕的进程。top(1)手册页中提供了字段说明的描述。表3-1提供了这些字段的概要。

表3-1                                                      top进程字段

字    段

说    明

PID

进程id编号

USER

进程所有者的用户名

PRI

进程的优先级

SIZE

进程大小,包括它的代码、栈和数据区域,以千字节为单位

RSS

进程使用的内存总量,以千字节为单位

SHARE

进程使用的共享内存数量

STAT

进程的状态,通常R表示运行,S表示休眠

%CPU

自从最近的屏幕更新以来,这个进程使用的CPU百分比

%MEM

这个进程使用的内存百分比

TIME

自从进程启动以来,这个进程使用的CPU时间量

CPU

最近执行进程的CPU

COMMAND

正在执行的命令

3.1.3  保存自定义

一个非常好的top功能是保存当前配置。可以使用交互式命令s任意更改显示,然后按w保存该视图。

top在用户的主目录中写入一个.toprc文件,用来保存配置,以便下一次这个用户启动top时使用相同的显示选项。

top也寻找默认配置文件/etc/toprc。这是一个全局配置文件,当任何用户运行实用工具时,top将读取该文件。这个文件可以使top以安全模式运行,也可以设置刷新延迟。安全模式阻止非root用户注销或者更改进程的正常值,也阻止非root用户更改top的刷新值。Red Hat Enterprise Linux ES release 3的一个/etc/toprc示例文件如下所示:

s表示安全模式,3定义三秒钟刷新间隔。其他发布版本可能有不同的/etc/toprc格式。注销进程是一个非常实用的功能。如果用户有一个失控的进程,通过top命令可以轻易找到并注销它,具体步骤为:运行top,通过u命令显示用户的所有进程,然后使用k注销它。top不只是一个优秀的性能监视工具,它也可以用来通过注销那些产生问题的进程从而改进性能。

3.1.4  批处理模式

top也可以以批处理模式运行。尝试运行以下命令:

-n 1告诉top只显示一次迭代,-b选项表示以适合写入文件的文本形式输出或者定向到另一个程序(例如less)。类似以下两行脚本的命令可以顺利完成cron工作:

可以将它添加到crontab,并每隔15分钟收集一次输出。

通过批处理可以轻松完成所有任务,无需用户的干涉。所有进程都被列出,输出并不是每5秒钟刷新一次。如果用户的主目录中存在一个.toprc配置文件,那么它用来格式化显示。以下是在一个多CPU Linux服务器上运行top批处理模式的输出。注意,其中没有显示top输出的所有258个进程。

现在读者可能明白了为什么top会如此流行。top的交互式本质和容易自定义输出的能力使它成为诊断问题的优秀工具。 

分享到:
评论

相关推荐

    linux性能分析工具

    Linux 中可以利用top,ps,iostat,vmstat等命令观察系统性能状况,但如果你觉得在几个工具间切换是件麻烦事,那可以试试 nmon。nmon 是IBM提供的运行于AIX/Linux平台的性能分析工具,可以在同一屏幕中输出CPU、内存、...

    Linux常见性能分析工具

    本资源通过描述命令作用,并结合实例,讲解Linux下常见的几种性能分析工具,包括vmstat、sar、iostat、free、uptime、netstat和top

    Linux性能监控工具

    Linux性能监控工具 top:显示所有进程情况, vmstat:显示系统活动,硬件和系统信息, uptime,w:显示系统的平均负载, ps,pstree:显示进程, free(如果不带任何参数输入,默认是以KB为单位输出):内存使用情况, ...

    Linux性能测试工具.docx

    Linux 系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存、CPU、硬盘……)出了问题。在 Linux 系统中,所有的运行参数保存在虚拟目录/proc 中,换句话说,...

    监控Linux性能的18个命令行工具

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。...Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。To

    一张图记住常用 Linux 系统性能诊断工具

    iostat tiptop netstat sar mpstat

    火焰图 程序性能分析

    文档描述了利用火焰图和perf工具对linux程序进行性能分析,打印所有函数执行的消耗时间并进行可视化,胜过用linux的top等命令进行分析

    使用top命令分析linux系统性能的详解

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在...

    Linux性能测试工具

    Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存、CPU、硬盘……)出了问题。在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说,我们...

    Linux系统性能优化命令与工具大全

    linux系统下性能监控及优化工具集,有vmstat、sar、iostat、uptime、free、watch、top、gtop、dmesg、pmap和strace等等,如果上面这些命令你都没有听过,那还等什么呢,赶紧学吧。

    linux中top命令详解

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在...

    Linux系统查看CPU、机器型号、内存等信息

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器;不过这里我们主要是介绍一下 linux 系统如何查看CPU信息、机器型号、内存信息等。 系统 # uname -a #...

    nmon aix性能分析工具.rar

    - this includes the nmon for Linux too: Goto http://www.ibm.com/servers/eserver/pseries/community/ then select AIX Wiki then select Other Performance Tools then select nmon or go there directly via...

    nmon-LIinux性能监控工具.zip

    还在为日日运维伤神吗?还在为只会top命令却分析不出系统出问题的真正原因而发愁吗?nmon———IBM的强大性能监控分析工具。你,值得拥有!

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.3 影响Linux性能的各种因素 10.3.1 系统硬件资源 10.3.2 操作系统相关资源 10.3.3 应用程序软件资源 10.4 系统性能分析标准和优化原则 10.5 几种典型应用对系统资源使用的特点 10.5.1 以静态内容为...

    Linux中安装Glances监控器完整教程(含所有必须安装的工具)

    top 命令是 Linux 下的一个实时任务管理器, 同时也是用于在 GNU/Linux 发行版中寻找系统性能方面的瓶颈,并帮助我们作出正确操作的常用系统监视工具。 她有着一个极为简洁的界面,并自带少量的可以帮助我们快速了解...

    iostat_vmstat_详解

    Linux在具有高稳定性、可靠性的同时,具有很好的可... 在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。

    top命令 实时显示进程动态

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。...

    超实用的8个Linux命令行性能监测工具

    摘要:本文总结了8个非常实用的Linux命令行性能监测工具,这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。  对每个系统/网络管理员来说,每天监测Linux系统性能是一项...

    Linux监控cpu以及内存使用情况之top命令(详解)

    top命令是Linux下常用的性能分析工具,比如cpu、内存的使用,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来...

Global site tag (gtag.js) - Google Analytics