`
shake863
  • 浏览: 661328 次
  • 性别: 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性能分析之CPU实战-视频课程资源网盘链接提取码下载 .txt

    ### Linux性能分析之CPU实战知识点概述 #### 一、课程背景与目标 - **背景**:随着技术的发展,Linux作为一款强大的开源操作系统,在服务器、云计算等领域占据着举足轻重的地位。然而,随着应用场景的复杂化,Linux...

    linux-Linux性能优化实战案例

    9. **性能分析工具**:`perf`是Linux内建的性能分析工具,可以进行采样分析、函数调用链分析等,帮助定位热点代码。`gprof`和`valgrind`则用于C/C++程序的性能和内存泄漏检测。 10. **内核调优**:根据系统负载和...

    linux性能分析工具

    Linux性能分析工具是系统管理员和开发者用来诊断和优化系统性能的关键工具。在Linux环境中,有多个内置命令,如`top`、`ps`、`iostat`和`vmstat`,它们各自专注于不同的系统层面,例如CPU使用率、内存状态、磁盘I/O...

    Linux常见性能分析工具

    其他的一些性能分析工具如iostat(监控磁盘I/O)、free(查看内存使用情况)、top(动态显示系统进程和资源使用情况)也经常被用来获取特定系统性能信息,但因为文章中未提及详细用法,这里不再赘述。 综上所述,...

    p31668908_112040_Linux-x86-64

    综上所述,Linux运维是一个多方面且细致入微的工作,涉及到多个层次的系统管理、安全维护和性能优化。对于给定的文件,运维人员需要理解补丁的作用,正确地应用它,并确保系统在更新后仍然稳定和安全。

    linux系统性能问题分析思路指引

    ### Linux系统性能问题分析思路指引 #### 一、性能三要素及分析方法 在Linux系统中,当遇到性能问题时,通常需要从以下几个方面进行综合分析: 1. **I/O (Input/Output)**:I/O操作是导致系统性能瓶颈的一个常见...

    linux性能调优.pdf

    Linux性能调优是系统管理员和开发人员...总而言之,Linux性能调优是一个系统化的过程,需要从性能分析、工具使用、指标监控等多个维度进行。通过合理的规划和调整,我们能够使Linux系统更好地满足应用和用户的需求。

    Linux系统性能调优-内容指南完整版

    - **理解Linux性能指标**:如CPU使用率、内存使用、磁盘I/O速率、网络带宽等,它们是评估系统性能的基础。 2. **监控和压测工具** - **监控工具**:如`top`、`vmstat`、`iostat`、`netstat`用于实时查看系统状态...

    Linux 性能分析.pdf

    本文将详细介绍Linux性能分析中常用的工具和手段,以便更好地了解系统行为,诊断问题,并对系统进行优化。 首先,我们需要了解CPU的基本信息,这包括了CPU的型号、核心数量、时钟频率、缓存大小等。在Linux中,可以...

    Linux-CPU-function-test.zip_cpu_cpu function_linux cpu test_ubun

    综上所述,"Linux-CPU-function-test.zip"包含了一系列用于测试和分析Linux系统CPU功能和性能的工具和方法,适用于系统管理员和开发者,帮助他们确保系统的健康运行和高效性能。通过这个压缩包,用户可以深入理解CPU...

    Linux-Performance-Monitoring.pdf

    在IT领域,Linux性能监控是优化系统运行效率和解决问题的关键技术。这份名为“Linux-Performance-Monitoring.pdf”的文档很可能是关于如何有效地监控和分析Linux系统性能的专业指南。以下是基于这个主题的一些关键...

    老男孩Linux运维笔记--文字版

    在系统监控与性能优化方面,笔记会介绍如何使用`top`、`htop`、`iostat`、`vmstat`等工具来监控系统状态,及时发现并解决问题。同时,还会涉及内存管理、CPU调度、I/O优化等关键概念,提升系统的稳定性和效率。 ...

    linux下top使用方法

    `top`命令作为Linux系统中的一个重要工具,不仅可以实时监控系统的整体性能,还能帮助我们快速定位和分析问题所在。通过灵活运用`top`命令提供的各项功能,我们可以更好地管理和优化系统资源,提高系统的稳定性和...

    Linux性能分析工具汇总.docx

    ### Linux性能分析与调优工具详解 #### 一、性能分析工具 在Linux环境中,性能分析是确保系统高效运行的关键步骤。通过对系统性能的监测,我们可以及时发现并解决潜在的问题,提高系统的稳定性和响应速度。 #####...

    Linux性能分析基础

    Linux性能分析是优化系统效率和解决性能问题的关键技术。它主要关注系统运行的各个层面,包括硬件资源、操作系统、服务器软件、开发平台、中间件软件以及应用程序。通过对这些环节进行深入分析,我们可以找出系统...

Global site tag (gtag.js) - Google Analytics