Linux的性能故障的含义,Linux排查性能故障的方法

好了,鉴于我们的Linux发行版现已安装,许多方面看起来似乎根本不“好”。今天我们将介绍为安装的Linux排查性能故障的方法。虽然今天的这篇文章明显倾向于Ubuntu,但我们探讨的几乎一切内容都同样适用于每个Linux发行版。要是哪些命令是专门针对特定的发行版,我会特别指出(要是你注意到什么,欢迎在末尾处留言,我会酌情补充上去)。

我是不是忘记了什么?

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

free -h –si会显示类似这样的结果:

2013-02-28-11-26-12.jpg

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

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

到底是怎么个状况?

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

atsar -A

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

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

问题来自里面还是外面?

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

iostat -h -p ALL显示下列长长的输出

2013-02-28-11-26-29.jpg

显示下列长长的输出

2013-02-28-11-26-43.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对我来说似乎太容易了。

结束语

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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget

官方微博

TechTarget中国

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[你必须知道的.NET] 第四回:后来居上:class和struct

本文将介绍以下内容: • 面向对象基本概念 • 类和结构体简介 • 引用类型和值类型区别 1. 引言 提起class和struct,我们首先的感觉是语法几乎相同,待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程,class和stru…

linux shell跳板机,用shell开发跳板机

信号列表:在linux中和信号相关的常见命令为kill及trap命令,下来如何利用trap控制跳板机脚本来使用命令:命令:kill -l 和 trap -l企业实战中linux系统的重要信号及说明HUP(1) 挂起INT(2) 中断OUIT(3) 退…

[你必须知道的.NET] 第五回:深入浅出关键字---把new说透

本文将介绍以下内容: 面向对象基本概念new关键字深入浅出对象创建的内存管理 1. 引言 园子里好像没有或者很少把new关键字拿出来说的,那我就占个先机吧,呵呵。那么,我们到底有必要将一个关键字拿出来长篇大论吗?看来…

linux tcp server开源,GitHub - 06linux/cellnet: 高性能,简单,方便的开源服务器网络库...

cellnetcellnet是一个高性能,简单,方便的开源服务器网络库自由混合编码,业务代码无需调整。TCP和html5的应用都可以直接使用cellnet迅速搭建服务器框架。与Java的Netty或Mina网络库类似的Handler机制将给予强大定制功能。特性数据协议支持混合…

[你必须知道的.NET] 第六回:深入浅出关键字---base和this

本文将介绍以下内容: 面向对象基本概念base关键字深入浅出this关键字深入浅出1. 引言 new关键字引起了大家的不少关注,尤其感谢Anders Liu的补充,让我感觉博客园赋予的交流平台真的无所不在。所以,我们就有必要继续这个话题&…

[你必须知道的.NET] 第七回:品味类型---从通用类型系统开始

本文将介绍以下内容: .NET 基础架构概念 类型基础通用类型系统CLI、CTS、CLS的关系简述1. 引言 本文不是连环画,之所以在开篇以图形的形式来展示本文主题,其实就是想更加特别的强调这几个概念的重要性和关注度,同时希望从剖析其关…

[你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理

本文将介绍以下内容: 类型的基本概念 值类型深入引用类型深入值类型与引用类型的比较及应用1. 引言 买了新本本,忙了好几天系统,终于开始了对值类型和引用类型做个全面的讲述了,本系列开篇之时就是因为想写这个主题,…

[你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边

接上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的探讨,继续我们关注值类型和引用类型的话题。 本文将介绍以下内容: 类型的基本概念 值类型深入引用类型深入值类型与引用类型的比较及应用1. 引…

[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途

本文将介绍以下内容: 类型的基本概念 值类型深入引用类型深入值类型与引用类型的比较及应用 [下载]:[类型示例代码] 1. 引言 值类型与引用类型的话题经过了两个回合([第八回:品味类型---值类型与引用类型(上&#xf…

[你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)

本文将介绍以下内容: 按值传递与按引用传递深论ref和out比较 参数应用浅析 1. 引言 接上回《第九回:品味类型---值类型与引用类型(中)-规则无边》中,对值类型和引用类型的讨论,其中关于string…

[你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)

本文将介绍以下内容: 按值传递与按引用传递深论ref和out比较 参数应用浅析 接上篇继续,『第十一回:参数之惑---传递的艺术(上)』 4.2 引用类型参数的按值传递 当传递的参数为引用类型时,传递和操作的是指…

[你必须知道的.NET]第十三回:从Hello, world开始认识IL

本文将介绍以下内容: IL代码分析方法 Hello, world历史 .NET学习方法论1. 引言 1988年Brian W. Kernighan和Dennis M. Ritchie合著了软件史上的经典巨著《The C programming Language》,我推荐所有的程序人都有机会重温这本历史上的经典之作。从那时起…

[你必须知道的.NET]第十四回:认识IL代码---从开始到现在

本文将介绍以下内容: IL代码分析方法 IL命令解析 .NET学习方法论 1. 引言 自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予了anytao巨大的鼓励和动力。俱往昔,我发现很多的园友都把…

[你必须知道的.NET]第十五回:继承本质论

本文将介绍以下内容: 什么是继承?继承的实现本质1. 引言 关于继承,你是否驾熟就轻,关于继承,你是否了如指掌。 本文不讨论继承的基本概念,我们回归本质,从编译器运行的角度来揭示.NET继承中的…

海岸鸿蒙2018年标准物质,海岸鸿蒙——20年权威的标准物质研制单位

摘要:海岸鸿蒙创办于1996年,是专业从事国家标准物质研发、生产、销售的高新技术企业。海岸鸿蒙创办于1996年,是专业从事国家标准物质研发、生产、销售的高新技术企业。海岸鸿蒙自创办以来,一直秉持“以市场为导向,以科…

[你必须知道的.NET]第十六回:深入浅出关键字---using全接触

本文将介绍以下内容: using指令的多种用法using语句在Dispose模式中的应用1. 引言 在.NET大家庭中,有不少的关键字承担了多种角色,例如new关键字就身兼数职,除了能够创建对象,在继承体系中隐藏基类成员,还在…

华为双系统是鸿蒙系统吗,华为p50pro是鸿蒙系统吗-华为p50pro有双系统吗

华为p50pro的外观基本上就是延续了上一代的风格,没有什么太大的变化,不过影像能力还是非常令人期待的,下面一起来了解华为p50pro的系统方面,看看有没有你暂所不知的消息。近日,有消息曝光了华为 P50 Pro将会有 Harmony…

[你必须知道的.NET]第十七回:貌合神离:覆写和重载

本文将介绍以下内容: 什么是覆写,什么是重载覆写与重载的区别覆写与重载在多态特性中的应用1. 引言 覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之一,两…

鸿蒙系统正式开源,余承东:鸿蒙系统正式开源,友商也可以使用!

鸿蒙OS2.0正式开源:从PPT走向前台,该谁脸红了?在9月10日的开发者大会上,华为鸿蒙2.0发布,已经不再是某些人嘴中的PPT、又哄又蒙的鸿蒙了。说鸿蒙是PPT的言论,在前不久还能看到,如今鸿蒙已经发布…

[你必须知道的.NET]第十八回:对象创建始末(上)

本文将介绍以下内容: 对象的创建过程内存分配分析内存布局研究1. 引言 了解.NET的内存管理机制,首先应该从内存分配开始,也就是对象的创建环节。对象的创建,是个复杂的过程,主要包括内存分配和初始化两个环节。例如&…