Ubuntu性能调优:故障排查

我是不是忘记了什么?

  你已明明花了一些钱用于硬件配置,购买了另外那8GB的内存,可为什么安装的发行版运行起来速度还是那么慢?想确信你的系统看到已安装的所有内存, 最快捷的办法就是使用'free'这个命令。默认情况下,这个命令会列出它"看到"的你系统上安装的所有内存(包括物理内存和交换内存)。下面是查看你所 寻找的内存的最简便方法:

free -h --si

  会显示类似这样的结果:

https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193206mgtgp43lc7dbzgcp.jpg

  我们这个命令后面的两个参数'-h -si'告诉它以"人可读"的格式来显示输出(自动选择最合适的类型:兆字节、吉字节和太字节),并使用兆字节/吉字节/太字节的十进制与二进制定义。如 果你在这里看到的内容与你知道电脑上实际安装的情况不一致,那么有几个办法可以尝试一下。首先,如果你安装了4GB以上的内存,确信已安装了64位版本的 发行版,不然你最多只能看到4GB的存储空间。(如果你安装了32位版本,又需要4GB以上的内存,可以安装一个名为"PAE"的特殊内核,PAE代表" 物理地址扩展"--它让你的系统可以在32位操作系统上看到4GB以上的内存。)

  如果你将内核更新到PAE(32位)或者重新安装了发行版(64位)后,你的系统还是看不到全部数量的内存,那么你就应该关闭系统,重新插拔一下内存。你也可以拨出所有内存,就只剩一条内存芯片,通过逐个排除的方法,确定是否存在内存芯片硬件问题。

到底是怎么个状况?

  想确定新安装的系统上到底是怎么个状况,一种功能更强大的工具是'atsar'(注意:另外大多数发行版有同样的工具,但是名为'sar',就像原 始的伯克利Unix工具)。该应用程序可以为你提供诸多方面的统计数字,包括内存、处理器、负载、网络、线程、插座、错误和交换等方面。想了解"全面"的 状况,最快捷的办法就是使用下列命令:

atsar -A

https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193206bvnb7zghughhbz4g.jpg

  这会给出你系统上几乎任何方面的随意读出结果,就像这样(上面的屏幕截图只是一部分,完整的读出结果要长得多)。

  '-A'参数意味着"给我显示可能显示的一切信息",是获得简要的完整系统视图的好方法,以便查看哪里出了异常(即你是否看到频繁地交换?为何 MySQL占用该处理器的全部资源?为何有那么多的进程用于Apache?我的系统负载有多大?)这可以帮助你重点关注需要更多一点信息的某个方面。

问题来自里面还是外面?

  我们现在通过上面的'atsar'报告表明了当前状况。系统上有许多的输入输出等待(IOWait),那么它们又都来自哪里呢?嗯,输入输出可能与磁盘有关(读取/写入),或者与网络有关(发送/接收)。我们可以使用'iostat',深入分析统计数字,如下所示:

iostat -h -p ALL

  显示下列长长的输出

https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/1932063legtpl5laa55lcn.jpg

  显示下列长长的输出

https://dn-linuxcn.qbox.me/data/attachment/album/201303/04/193207dsqmseeqmsmmsb9x.jpg

  这会以人可读的格式(再次使用了'-h'参数)显示所有的网络、内存和磁盘设备(包括挂载的Samba或NFS设备,如果你有这些设备)及其事务、 每秒读取/写入。如果你想看到在一段时间内不断提供的这种信息(或者更实用的是,把这些信息输出到某个文件),不妨在末尾添加一个整数(比如说,那样 'iostat -h -t -p ALL 5 > results.txt'就会每隔5秒生成这份报告,每个段落有一个起始时间,并保存到文件--注意这个操作会不断持续,直到你摁住 CTRL-C组合键中断这个过程,或者如果你在后台运行,直到你终止该过程)。

  眼下有了内存、处理器、内存、网络、磁盘和输入输出方面的统计数字,你对系统当前的状况多少应该有所了解。别忘了使用我们的老朋友:'top'命令,看看到底哪些进程在运行,这会帮助你把当前运行的进程与你在我们的演练期间发现的那种类型的性能度量标准关联起来。

轻松搞定锁定问题

  有时候,尤其是在排查故障时,你会发现自己采取的某个操作使得情况反而更糟糕了(比如终止了不该终止的进程,结果锁定了XWindows,等等)。 你似乎根本什么都干不了。如果是这样,你总是可以摁住CTRL-ALT-F1组合键,看看是否能得到明文外壳。如果能,你只要重启系统,再试一下 ('sudo reboot')。有时候,连这一招都不管用。

  这里有一招可以让你无须关闭系统电源、希望EXT3/4中的文件系统日志可以避免文件受损:REISUB。这是冷启动之外最安全的办法,而且几乎总是屡试不爽,不管你的系统怎样被"锁定"了。你可以执行这个神奇的操作,如下所示:

  摁住ALT和SYSREQ(PRINT SC)键的同时,输入R E I S U B

  现在,有几个方面需要考虑。首先,你的键盘得有SYSREQ(PRINT SC)这个键,一些比较现代或比较紧凑的键盘没有这个键。要是你的键盘没有这个键,这一招显然不管用。其次,那些字母输入时不要太快。因为它们各自执行一 个操作,每个字母之间最好间隔五秒左右,那样它们就能完成各自的工作。具体来说,这几个字母分别代表:

  • R = 切换到XLATE
  • E= 终止向所有运行中的进程(INIT除外)发信号
  • I= 终止init除外的所有进程(针对没有响应终止命令的进程)
  • S= 同步所有文件系统
  • U= 重新挂载文件系统,只读格式
  • B= 重启系统

  这个小技巧几乎被人们所遗忘。我觉得要记住这个顺序的最简便办法就是记住这个短语Reboot Even If System Utterly Broken(即使系统完全坏掉,也可以重启)。我听过别人倒过来识记,称之为"BUSIER",但相对较短的这个BUSIER对我来说似乎太容易了

结束语

  与互联网时代的许多方面一样,排查问题的能力俨然成了一门失传的技艺。就像本文中一样,有好多地方可以查询你所要找的答案。不过,仅仅知道几个基本的命令和高效排查故障的顺序,就可以替你节省时间,完全可能让你迈上一个台阶。

 原文发布时间为:2013-03-16

时间: 2024-08-01 23:59:30

Ubuntu性能调优:故障排查的相关文章

Android界面性能调优手册

注:本文是我在 Android 界面性能调优知识的系统性总结,纯属个人碎碎念.秉持开源分享的原则发布本文出来,各位看官有需则取.原文见:https://androidtest.org/android-graphics-performance-pattens/ 界面是 Android 应用中直接影响用户体验最关键的部分.如果代码实现得不好,界面容易发生卡顿且导致应用占用大量内存. 我司这类做 ROM 的公司更不一样,预装的应用一定要非常流畅,这样给客户或用户的第一感觉就是快.又卡又慢的应用体验,会

Android性能调优工具TraceView介绍

Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以方便的查看线程的执行情况,某个方法执行时间.调用次数.在总体中的占比等,从而定位性能点.1.生成日志,运行TraceView 运行TraceView有两种方式a.调用Debug类 在开始调试的地方,如Activity的onCreate函数,添加 Java 1 Debug.startMethodTracing("tracefilename"); 结束调试的地方,如Activity的onDestr

这是一篇最通熟易懂的性能调优总结!

精彩早知道 作者概述 什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么人来进行性能调优?(who) 怎么样进行性能调优?(How) 总结 硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10 操作系统: CentOS 6.4 x86_64(64位)  一.作者概述 在这篇博文中,我不想用一些抽象的概念去说性能调优的问题,只想用最通俗的语言尽量来准确的表达我的想法

性能调优概述,这是一篇最通俗易懂的性能调优总结

精彩早知道 作者概述 什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么人来进行性能调优?(who) 怎么样进行性能调优?(How) 总结 硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作系统: CentOS 6.4 x86_64(64位). 概述 在这篇博文中,我不想用一些抽象的概念去说性能调优的问题,只想用最通俗的语言尽量来准确的表达我的想法. 由于

SQL Server 性能调优培训引言

原文:SQL Server 性能调优培训引言      大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录.       作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于是我通过网络找了各种MS SQL技术的相关文档,总觉得讲得比较干涩,没有一个系统性,今年3月底我无意浏览到一个网站提供免费的性能调优的半年培训(http://www.sqlpassion.at/academy/performance

JVM堆内存监测的一种方式,性能调优依旧任重道远

上月,由极客邦.InfoQ和听云联合主办2016 APMCon中国应用性能管理大会圆满落下帷幕.会上,Java冠军Martijn Verburg进行了一场Java and the Machine的分享,讨论了为什么数据分析至关重要.他有着十多年Java经验,目前是创业公司jClarity的CEO,jClarity是一款采用统计和机器学习来探究性能问题根源的方案.会后,InfoQ还专访Martijn以进一步了解沟通. JVM堆内存及一种监测方式 在讨论Martijn的团队如何进行堆内存监测之前,我

linux io/系统/内存性能调优整理

 为什么要性能调优? 大部分的linux发行版是为了完全兼容市场中大部分计算机而设计的.这是一个相当混杂的硬件集合(硬盘,显卡,网卡,等等).所以Red Hat, Suse,Mandriva和其他的一些发行版厂商选择了一些保守的设置来确保安装成功. 简单地说:你的发行版运行的很好,但是它可以运行地更好! 比如,可能有一个具体一些特殊特性的高级硬盘,而这些特性在标准配置的情况下可能就没被启用. 磁盘子系统的调优 对于Linux的Ext3/4来说,几乎在所有情况下都有所帮助的一个参数是关闭文件系统访

oracle数据库性能调优技术:深入理解单表执行计划

一.概述 这篇文章是数据库性能调优技术的第二篇.上一篇讲解的索引调优是数据库性能调优技术的基础.这篇讲解的深入理解单表执行计划,是数据库性能调优的有力工具. 查询语句可以有多种可选执行计划,如何选择效率最高的执行计划?达梦数据库.oracle数据库.sql server数据库都是采用基于成本的查询优化,对备选执行计划进行打分,选择大家最小的执行计划进行执行.这些内容,我会在后续的几篇文章中进行详细的描述.在此之前,我们首先需要掌握如何理解数据库执行计划.这篇文章讲解只涉及单表操作的执行计划. 达

Liferay前端性能调优(1) 测评工具YSlow

最近我们团队要问Liferay做前端页面调优,当然了,测评工具是最重要的,为了看具体的页面加载时间等 ,我们首选当然是Chrome浏览器的诊断工具,但是总感觉不专业,基于我已有的经验,我还是推荐了YSlow,它 会对于页面的各项指标进行打分,然后最终获得总分然后评级,一般级别有A,B,C,D,E,F6个级别. 如何安 装和测试YSlow: (1) 从Firefox的Add-on上下载 "YSlow" (2)重启Firefox检查是否YSlow 已经被正确的安装 (3)到我们要测试的页面