LINUX系统故障诊断及其排除_第1页
LINUX系统故障诊断及其排除_第2页
LINUX系统故障诊断及其排除_第3页
LINUX系统故障诊断及其排除_第4页
LINUX系统故障诊断及其排除_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Evaluation Warning: The document was created with Spire.Doc for .NET.2007-4-117 114:330:000 图书导读 本章解释如如何使用用适用于于Linnux的大量量性能工工具及每每个工具具中信息息的意义义。即使使已经使使用top或者sar,也可可能从本本章学到到相关知知识。应该养成使使用这些些工具的的习惯。当当然要知知道如何何诊断性性能问题题,但也也应该定定期寻找找可能指指示问题题的关键键指标的的变化。可可以使用用这些工工具衡量量新应用用程序对对性能的的影响。就就如同查查看车内内的温度度表一样样,要注注意Linnux

2、系统的的性能指指标。本本章介绍绍的工具具有: ttop ssar vvmsttat iiosttat ffreee可以作为普普通用户户运行这这些工具具。它们们都利用用/prroc文件系系统得到到它们的的数据。这这些性能能工具和和几个rpm一起提提供。proocpss rppm提供top、freee和vmsstatt。syssstaat rrpm提供sar和iosstatt。top命令令是一个个优秀的的交互式式实用工工具,用用于监视视性能。它它提供关关于整体体Linnux性能的的几个概概要行,但但是报告告进程信信息才是是top真正的的长处。可可以广泛泛自定义义进程显显示,也也可以添加加字段,按按

3、照不同同指标排排序进程程列表,甚甚至从top注销进进程。sar实用用工具提提供监视视每一事事件的能能力。它它至少有有15个单独独的报告告类别,包包括CPU、磁盘盘、网络络、进程程、交换换区等等等。vmstaat命令报报告关于于内存和和交换区区使用的的广泛信信息。它它也报告告CPU和一些I/O信息。iosstatt报告存存储输入入/输出(I/O)统计计资料。这些命令覆覆盖许多多相同的的地方。本本节讨论论如何使使用这些些命令并并解释每每个命令令产生的的报告,并并不讨论论所有15种sar语法,但但是介绍绍了其中中最常见见的。3.1 topptop命令令是最流流行的性性能工具具之一。大大多数系系统管理

4、理员运行top查看Linuux和UNIX系统的的运行情情况。top实用工工具提供供一种监监视进程程和Linnux整体性性能的理理想方法法。将Linnux进程称称作任务务更准确确,但是是在本章章中我们们还是将将它们称称作进程程,因为为这个工工具也这这样称呼呼它们。1普通用户和root用户都可以运行top。图3-1显示一个空闲系统的典型top输出。图3-1 toop输出top显示示有两个部分分。大约约前三分分之一显显示关于于Linnux的整体体信息,其其余行为为各个进进程信息息。如果果扩展窗窗口则显显示更多多进程而而填充整整个屏幕幕。更全面的LLinuux信息可可以通过过使用top之外的的几个命命

5、令来得得到。不不过,通通过一个个命令在在一个屏屏幕上显显示所有有信息比比较理想想。第一一行显示示最近1分钟、5分钟和15分钟的的负载平平均值。负负载平均均值表示示在CPU上运行行或者等等待运行行多少进进程。upttimee命令也也可以用用来显示示负载平平均值。接接下来是是进程信信息,之之后是CPU、内存存和交换换区。内内存和交交换区信信息与freee命令输输出类似似。在我我们确定定内存和和CPU使用之之后的下下一个问问题是哪哪些进程正在在使用它它。大部分进程程信息也也可以通通过ps命令得得到,但但是top提供一种种更易于于阅读的的格式。最最有用的的是用于于提供帮帮助的h,它列列出top的其他他

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

7、Hat Enterprise Linux ES release 3的帮助屏幕,显示什么字段可以添加。图3-3 toop添加/移除字字段的屏屏幕图3-4显显示一个个SUSSE LLinuux 99.0 topp的帮助助屏幕,可可见它们们提供的的命令差差别非常常大。图3-4 SUUSE topp的帮助助屏幕3.1.22 解释输输出让我们研究究top信息的的意义,以top的如下输出为例:top输出出的第一一行显示示负载平平均值信信息:这个输出与与upttimee的输出出类似。从从中可看看到Linnux已经运运行时间间、当前前时间和和用户数数量,以以及1分钟、5分钟和15分钟负负载平均值。接接下来显显

8、示进程程概要:我们看到总总共有73个进程程,其中中72个进程程正在休休眠,一一个进程程正在运运行,没没有僵化化进程或或者被停停止的进进程。当当一个进进程退出出并且它它的父进进程没有有通过waiit(2)或者waiitpiid(2)函数数等待它它时,它它就会成成为僵化化进程。这这通常是是由于父父进程在在它的子子进程之之前退出出造成的的。不同同于进程程表中的的项,僵僵化进程程不使用用资源。停停止的进进程是已经向向它发送送STOOP信号的的进程。更更多信息息,请参参见siggnall(7)手册页页。接下来是CCPU信息:CPU行描描述CPU如何使使用它们们的CPU周期。top命令报报告CPU在用户户

9、或者内内核模式式、运行行良好进进程以及及处在空空闲状态态时所花花费时间间的百分分比。iowwaitt列显示示没有进进程在CPU上运行行时,处处理器等等待I/O完成的的时间的的百分比比。irq和sofftirq列表示示处理硬硬件和软软件中断断所花费费的时间间。早于于2.6版本的Linnux内核不不报告irq、sofftirrq和iowwaitt。接下来是内内存信息息:前三个指标标提供内内存使用用的概要要,列出出了总的的可用内内存、已已使用内内存和自自由内存存,它们们都是确确定对于于Linnux内存是是否足够够所需信信息。接下来五个个指标标标识已使使用的内内存如何何分配。shrrd字段显显示共享享

10、的内存存使用,bufff是缓冲冲使用的的内存。分分配给内内核或者者用户进进程的内内存可以以处在三三种不同同状态:活动(acttivee)、不不活动脏脏(inaactiive dirrty)和不不活动干干净(inaactiive cleean)。活活动在top中用aottv表示,表表示该内内存最近近被使用用。不活活动脏在在top中用in_d表示,表表示该内内存最近近没有使使用,可可以回收收。要回回收内存存,必须须将它的的内容写写到磁盘盘,这个个进程命命名为“清洗”,也可可称作内内存的第第四种临临时状态态。一旦旦被清洗洗,不活活动脏内内存成为为不活动动干净内内存,在在top中用in_c表示。由由N

11、orrm MMurrray和Neiil HHormman合著的的Unddersstanndinng VVirttuall Meemorry iin RRed Hatt Ennterrpriise Linnux 3是一一本优秀秀的参考考书,网网址为htttp:ppeopple.reddhatt.coom/nnhorrmann/paaperrs/ rheel3_vm.pdff。接下来是交交换区信信息:av字段是是可用的的交换区区总量,之之后是已已用数量量和自由由数量,最后是内核用于缓存的内存数量。top显示示的其余余部分是是进程信信息:top显示示尽可能能多的能能适合屏屏幕的进进程。top(1)手

12、册册页中提提供了字字段说明明的描述述。表3-1提供了了这些字字段的概概要。表3-1 ttop进程字字段字 段说 明PID进程id编编号USER进程所有者者的用户户名PRI进程的优先先级SIZE进程大小,包包括它的的代码、栈栈和数据据区域,以以千字节节为单位位RSS进程使用的的内存总总量,以以千字节节为单位位SHAREE进程使用的的共享内内存数量量STAT进程的状态态,通常常R表示运运行,S表示休休眠%CPU自从最近的的屏幕更更新以来来,这个个进程使使用的CPU百分比比%MEM这个进程使使用的内内存百分分比TIME自从进程启启动以来来,这个个进程使使用的CPU时间量量CPU最近执行进进程的CPU

13、UCOMMAAND正在执行的的命令3.1.33 保存自自定义一个非常好好的top功能是是保存当当前配置置。可以以使用交交互式命命令s任意更更改显示示,然后后按w保存该该视图。top在用用户的主主目录中中写入一一个.tooprcc文件,用用来保存存配置,以以便下一一次这个个用户启启动top时使用用相同的的显示选选项。top也寻寻找默认认配置文文件/ettc/ttoprrc。这是是一个全全局配置置文件,当当任何用用户运行行实用工工具时,top将读取取该文件件。这个个文件可可以使top以安全全模式运运行,也也可以设设置刷新新延迟。安安全模式式阻止非非rooot用户注注销或者者更改进进程的正正常值,也

14、也阻止非非rooot用户更更改top的刷新新值。Redd Haat Ennterrpriise Linnux ES relleasse 33的一个/etcc/tooprcc示例文文件如下下所示:s表示安全全模式,3定义三三秒钟刷刷新间隔隔。其他他发布版版本可能能有不同同的/ettc/ttoprrc格式。注注销进程程是一个个非常实实用的功功能。如如果用户户有一个个失控的的进程,通通过top命令可可以轻易易找到并并注销它它,具体体步骤为为:运行行top,通过u命令显显示用户户的所有进程,然然后使用k注销它它。topp不只是是一个优优秀的性性能监视视工具,它它也可以以用来通通过注销销那些产产生问题题

15、的进程程从而改改进性能能。3.1.44 批处理理模式top也可可以以批批处理模模式运行行。尝试试运行以以下命令令:-n 1告告诉top只显示示一次迭迭代,-b选项表表示以适适合写入入文件的的文本形形式输出出或者定定向到另另一个程程序(例例如lesss)。类类似以下下两行脚脚本的命命令可以以顺利完成croon工作:可以将它添添加到croontaab,并每每隔15分钟收收集一次次输出。通过批处理理可以轻轻松完成成所有任任务,无无需用户户的干涉涉。所有有进程都都被列出出,输出出并不是每5秒钟刷刷新一次次。如果果用户的的主目录录中存在在一个.tooprcc配置文文件,那那么它用用来格式式化显示示。以下

16、下是在一一个多CPUU Liinuxx服务器器上运行行top批处理模模式的输输出。注注意,其其中没有有显示top输出的的所有258个进程程。现在读者可可能明白白了为什什么top会如此此流行。top的交互互式本质质和容易易自定义义输出的的能力使使它成为为诊断问问题的优优秀工具具。3.2 sarrsar是一一个优秀秀的一般般性能监监视工具具,它可可以输出出Linnux所完成成的几乎乎所有工工作的数数据。sar命令在syssetaat rrpm中提供供。示例例中使用用syssstaat版本5.00.5,这是是稳定的的最新版版本之一一。关于于版本和和下载信信息,请请访问syssstaat主页htttp

17、:/peersoo.waanaddoo.fr/sebbasttienn.goodarrd/。sar可以以显示CPU、运行行队列、磁磁盘I/O、分页页(交换换区)、内内存、CPU中断、网网络等性性能数据据。最重重要的sar功能是是创建数数据文件件。每一一个Linnux系统都都应该通通过croon工作收收集sar数据。该该sar数据文文件为系系统管理理员提供供历史性性能信息息。这个个功能非非常重要要,它将将sar和其他他性能工工具区分分开。如如果一个个夜晚批批处理工工作正常常运行两两次,直直到下一一个早上上才会发发现这种种情况(除除非被叫叫醒)。我我们需要要具备研研究12小时以以前的性性能数据据的

18、能力力。sar数据收收集器提提供了这这种能力力。有许许多报告告语法,我我们首先先讨论数数据收集集。3.2.11 ssar数据收收集器sar数据据收集通通过/ussr/llib/sa中的一一个二进进制可执执行文件件和两个个脚本来来完成。sar数据收收集器是是一个位位于/ussr/llib/sa/saddc的二进进制可执执行文件件。saddc的工作作是写入入数据收收集文件件/vaar/11og/sa/。可以以为saddc提供几几个选项项。常见见语法是是:间隔是取样样间的秒秒数,iteerattionns是要取取得的样样本数量量,fille nname定义输输出文件件。简单单的saddc语法是/us

19、sr/llib/sa/saddc 3360 5/ttmp/saddc.oout。这个个命令在在5分钟间间隔取得得5个样本本并将它它们保存存在/tmmp/ssadcc.ouut。我们们应该定定期收集集样本,因因此需要要一个由由croon运行的的脚本。应应该把样样本放在在一个有有意义的的地方,如如在前一一节中使使用top脚本时时那样。syssstaat rrpm提供/ussr/llib/sa/sa11脚本来来完成所所有这些些事情。sa1(88)手册册页比sa1脚本本本身要长长得多。/ussr/llib/sa/sa11是一个个非常简简单的脚脚本,使使用语法法saddc -F -L 11 1 /vaa

20、r/llog/sa/sa#来运行saddc,其中#是某月月的日期期。较老老版本的的sa1使用datte+.%Y_%m_%d的输出出作为文文件后缀缀。如果果需要,可可以使用用-F选项使saddc强制创创建输出出文件。-L在写入入输出文文件之前前锁定它它,以防防止两个个saddc进程同同时运行行时损坏坏该文件件。较老老版本的的saddc没有-L选项,因因此sa1脚本执执行手工工锁定。sa1脚本的的选项只只是样本本之间的的间隔和和取样迭迭代的次次量。croon文件(/ettc/ccronn.d/syssstaat)和syssstaat一起提提供,在在各syssstaat版本之之间它有有所不同同。以下

21、下是5.00.5版本的syssstaat的条条目:可见,在ssyssstatt rppm安装之之后,saddc开始取取得样本本。syssstaat主页是htttp:/peersoo.waanaddoo.fr/ seebasstieen.ggodaard/2。文档档链接提提供以下下类似20006年1月14日的croontaab方案:Sebasstieen GGodaard的网站站的croontaab示例建建议周一一至周五五从早晨晨8点到下下午6点每10分钟取取一次样样本,其其他时间间每小时时取得一一个样本本(注意意,croontaab注释为为下午7点,但但实际上上是18:00,即下下午6点)。如

22、如果/vaar中的磁磁盘空间间足够,可可以每天天都每小小时的每每10分钟取取样一次次。如果果周末备备份较慢慢,每小小时一次次saddc取样可可能帮助助不大。现在让我们们研究更更流行的的报告语语法。3.2.22 CCPU统计数数据sar -u输出显显示CPU信息。-u选项是sar的默认认选项。该该输出以以百分比比显示CPU的使用用情况。表3-2解释该输出。表3-2 ssar -u字段字 段说 明CPUCPU编号号%userr在用户模式式中运行行进程所所花的时时间%nicee运行正常进进程所花花的时间间%systtem在内核模式式(系统统)中运运行进程程所花的的时间%iowaait没有进程在在该C

23、PU上执行行时,处处理器等等待I/O完成的的时间%idlee没有进程在在该CPU上执行行的时间间这些看起来来应该比比较熟悉悉,它和和top报告中中的CPU信息内内容相同同。以下下显示输输出格式式:其中的5 10导致sar以5秒钟间间隔取得得10个样本本。任何何sar报告的的第一列列都是时时间戳。我们本来可可以研究究使用-f选项通通过saddc创建的的文件。这这个sar语法显显示sarr -ff/vaar/llog/ saa/saa21的输出出:在多CPUU Liinuxx系统中中,sar命令也也可以为为每个CPU分解该该信息,如如以下sarr -uu -PP ALLL 55 5输出所所示:3.

24、2.33 磁盘I/O统计数数据sar是一一个研究究磁盘I/O的优秀秀工具。以以下是sar磁盘I/O输出的的一个示示例。第一行-dd显示磁磁盘I/O信息,52选项是是间隔和和迭代,就就像sar数据收收集器那那样。表表3-3列出了了字段和和说明。表3-3 sarr -dd字段字 段说 明DEV磁盘设备tps每秒传输数数(或者者每秒IO数)rd_seec/ss每秒5122字节读读取数wr_seec/ss每秒5122字节写写入数512只是是一个测测量单位位,不表表示所有有磁盘I/O均使用512字节块块。DEV列是devv#-#格式的的磁盘设设备,其其中第一一个#是设备备主编号号,第二二个#是次编编号或

25、者者连续编编号。对对于大于于2.5的内核核,sar使用次次编号。例例如,在在sarr -dd输出中中看到的的devv3-00和devv3-11。它们们对应于于/deev/hhda和/deev/hhdall。请看/deev中的以以下各项项:/dev/hdaa有主编编号3和次编编号0。hdaa1有主编编号3和次编编号1。3.2.44 网络统统计数据据sar提供供四种不不同的语语法选项项来显示示网络信信息。-n选项使使用四个个不同的的开关:DEV、EDEEV、SOCCK和FULLL。DEV显示网网络接口口信息,EDEEV显示关关于网络络错误的的统计数数据,SOCCK显示套套接字信信息,FULLL显示

26、所所有三个个开关。它它们可以以单独或或者一起起使用。表3-4显示通过-n DEV选项报告的字段。表3-4 saar -n DDEV字段字 段说 明明IFACEELAN接口口rxpckk/s每秒钟接收收的数据据包txpckk/s每秒钟发送送的数据据包rxbytt/s每秒钟接收收的字节节数txbytt/s每秒钟发送送的字节节数rxcmpp/s每秒钟接收收的压缩缩数据包包txcmpp/s每秒钟发送送的压缩缩数据包包rxmcsst/ss每秒钟接收收的多播播数据包包以下是使用用-n DEVV选项的sar输出:关于网络错错误的信信息可以以用sarr -nn EDDEV显示。表表3-5列出了了显示的的字段。

27、表3-5 ssar -n EDEEV字段字 段说 明IFACEELAN接口口rxerrr/s每秒钟接收收的坏数数据包txerrr/s每秒钟发送送的坏数数据包coll/s每秒冲突数数rxdroop/ss因为缓冲充充满,每每秒钟丢丢弃的已已接收数数据包数数txdroop/ss因为缓冲充充满,每每秒钟丢丢弃的已已发送数数据包数数txcarrr/ss发送数据包包时,每每秒载波波错误数数rxfraam/ss每秒接收数数据包的的帧对齐齐错误数数rxfiffo/ss接收的数据据包每秒秒FIFFO过速的的错误数数txfiffo/ss发送的数据据包每秒秒FIFFO过速的的错误数数SOCK参参数显示示IPCCS套

28、接字字信息。表3-6列出显示的字段及其意义。表3-6 ssar -n SOCCK字段字 段说 明totscck使用的套接接字总数数量tcpscck使用的TCCP套接字字数量udpscck使用的UDDP套接字字数量rawscck使用的raaw套接字字数量ip-frrag使用的IPP段数量量sar可以以产生许许多其他他报告。我我们有必必要仔细细阅读sar(1)手册页页,查看看是否有有自己需需要的其其他报告告。3.3 vmsstattvmstaat命令也也是显示示Linnux性能指指标的方方法,它它报告了了许多信信息,理理解这些些信息有有一定难难度。输出分为66个类别:进程、内内存、交交换区、I/O

29、、系统统和CPU。与iosstatt类似,第第一个样样本是从从最近重重新启动动以来的的平均值值。以下下是一个个典型的的vmsstatt输出:-m选项使使内存字字段以兆兆字节为为单位显显示。vmsttat和许多多其他性性能命令令一样使使用取样样间隔和和计数参参数。进程(prrocss)信息息有两列列。r列是可可运行进进程的数数量,b列是阻阻塞进程程的数量量。内存部分有有4个报告告虚拟内内存如何何使用的的字段。表3-7列出这些字段及其意义。表3-7 vmmstaat内存字字段字 段说 明Swpd已用的交换换空间数数量free自由RAMM数量buff缓冲使用的的RAM数量cachee文件系统缓缓存使

30、用用的RAM数量接下来是交交换(swaap)指标标。交换换只是一一个古老老术语,但但是显然然不会消消失。交交换涉及及分页读读取或写写入磁盘盘的进程程所消耗耗的所有有内存。它它将显示示系统达达到的性性能指标标水平。而Linux所做的是,以小块方式按照需要对磁盘空间进行分页操作。因此,我们可能应该停止说交换到磁盘的内存,并开始说分页到磁盘的内存。对于任何一种方法,表3-8解释了相关字段。表3-8 vvmsttat交换字字段字 段说 明明si从磁盘分页页到内存存的数量量so从内存分页页到磁盘盘的数量量在交换之后后是两个个I/O字段。这这部分提提供了一一个简略略介绍以以帮助确确定Linnux是否正正忙于完完成许多多磁盘I/O。vmsstatt只提供供两个字字段,显显示出入入磁盘的的数据量量(参见见表3-9)。表3-9 vvmsttat io字段字 段说 明bi从磁盘读入入的块bo写入磁盘的的块系统字段提提供Linnux内核进进行进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论