基本信息
编辑推荐
本书适合广大Linux用户深入学习,并适合计算机专业本科、硕士等专业的学生学习参考。
内容简介
计算机书籍
性能调优有时被称为"黑色艺术",因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。
《Linux性能优化大师》首先对Linux 操作系统进行了深入剖析,并对最常用的企业监控工具Benchmark 及其他监控工具进行了详细的介绍,此外分析了系统中识别和分析瓶颈的过程,最后阐述如何使用性能衡量工具,以及如何对系统的4 大子系统进行调整,使系统以最优状态应对不同的工作环境。
《Linux性能优化大师》适合广大Linux 用户深入学习,并适合计算机专业本科、硕士等专业的学生学习参考。
作译者
目录
1.1 Linux进程管理 1
1.1.1 什么是进程 2
1.1.2 进程的生命周期 2
1.1.3 线程 3
1.1.4 进程优先级和nice等级 4
1.1.5 上下文切换 4
1.1.6 中断处理 5
1.1.7 进程状态 5
1.1.8 进程的内存段 6
1.1.9 Linux CPU调度程序 7
1.2 Linux内存体系结构 8
1.2.1 物理内存和虚拟内存 8
1.2.2 虚拟内存管理 10
1.3 Linux文件系统 12
1.3.1 虚拟文件系统 12
1.3.2 文件系统日志 13
1.3.3 Ext2 13
1.3.4 Ext3 15
1.3.5 Ext4 15
前言
在过去的十几年里,Linux已经进入全球范围内许多企业的数据中心。Linux操作系统同时也适合科研和企业用户群体。Linux是目前最通用的操作系统。你可以在嵌入式系统上找到Linux,比如防火墙、手机、大型机等。当然,Linux操作系统的性能对于科研和企业用户来说已经成为一个热门话题。然而,计算一个全球性的气象预报与操作系统上的数据库相比对主机有着不同的需求。Linux必须能够以最佳性能适应所有可能的使用场景。大多数Linux发行版中一般都包含调整参数,以适应所有用户。
现在大多数企业应用程序都可以在Linux上使用,包括文件和打印服务器、数据服务器、Web服务器及邮件服务器等。
我们需要对企业级服务器上使用的Linux进行性能监控,在必要的时候,对服务器做出调整以移除影响用户的瓶颈。本书介绍了调整Linux的方法,你可以使用工具监控和分析服务器的性能,为特定服务器的应用程序调整关键参数。本书主要介绍如何分析和调整Linux操作系统,让运行在这些系统上的任何类型的应用程序产生优异的性能。
本书在测试环境中使用的调整参数、基准测试结果、监控工具,都是基于Red Hat Enterprise Linux 6.x 64位系统的。但是,本书中的信息几乎对于所有的Linux硬件平台都是有帮助的。
什么是性能调优
性能调优有时被称为"黑色艺术",因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。
首先,必须先建立调优的目标。用户需要交互式使用系统?需要频繁读写数据库?权衡这些之后,对系统进行调整以实现既具有高吞吐量又具有较低的延时(快速的响应时间)。实时应用程序需要可预测的延迟,那么调整系统可以最小化延迟或消除不可预知的延迟。
另一方面,人为因素也要考虑。有时可能需要对预测的性能和实际系统效率进行改善。系统处理并不关心是达到了5%的使用率还是95%的使用率,但要对哪些情况是更可取的有一个明确的意见。通常,性能调优是为了消除造成数据传输速度慢的阻塞。将设备的工作量分布到一天的时间当中可以解决在高峰时期系统资源的稀缺问题。
性能管理是指在确认计算机资源充足的情况下有效地实现所有用户的商业需求。作为性能管理过程的一部分,你需要确认什么是一个系统可接受的性能。用户可能对系统性能有着不切实际的期望,但由于硬件或其他因素的物理特性而导致的系统性能下降是无法弥补的。
准备书面性能调整文档
在开始性能调优之前,建立书面的性能调整文档是非常重要的,可以包含以下要素:
具体的可实现的目标
可接受的最低性能标准
可重复测量的度量和正常变化
操作方法
通知机制
在设计期间准备性能调整文档的时候,要会识别和避免陷阱。不要考虑某些狭隘的问题,如"我怎样减少CPU使用率?"应该问"你的商业/企业目标是什么?"有时用户很难对工作流程或工作负载进行控制。公司政策也有可能致使最好的管理计划变得毫无价值。技术培训有时是一个有效的工具,可以与用户建立合作,让他们知道为什么要遵守特定规则或限制。
当你建立调整系统文档时,最重要的事情之一就是:使用什么标准来衡量系统的性能,并将得到的基准性能数据保存起来,以便以后进行比较。在进行任何调整工作之前更好地定义度量是必需的,通过对使用程序的调整寻找简单的可被测量的度量或已经被报道的度量。有时越简单的度量,越有可能发现有用的东西。度量也应该是相关的。例如,如果你的度量是"总共CPU时间",并且目标是减少一个应用程序使用CPU的总时间,你可能为了达到目标使用一个较慢的存储子系统,但是这不是一个能够让终端用户满意的方案。
询问客户,通过描述商业层的目标,可以帮助你找出测量特定应用的性能所需要使用的适当的度量。一旦选定了要使用的度量,要明确地确定度量单位以避免混乱。当获得这些度量的基线值时要考虑以下问题:
媒体评论
CPU空闲时间。其描述了系统空闲等待任务的CPU百分比。
Nice消耗CPU时间。描述了CPU花费在re.nicing进程(更改进程的执行顺序和优先级)上的时间百分比。
平均负载。load average不是一个百分比,而是以下总和的滚动平均值:队列中等待处理的进程数。
等待不可中断任务被完成的进程数。
可运行的进程。这个值描述了已经准备好执行的进程数。在一段持续的时间内,这个值不应该超过物理处理器数量的10倍。否则处理器可能是瓶颈。
阻塞的进程。不被执行的进程数,因为它们要等待I/O操作结束。阻塞的进程数能反映出是否有I/O瓶颈。
上下文切换。在系统上发生线程之间切换的数量。大量上下文切换如果与大量中断相关,则可能是驱动程序或应用程序出现问题的信号。上下文切换通常是不利的,因为每一次上下文切换都会导致CPU缓存被刷新,但是有些上下文切换是必要的。参考1.1.5节的内容。
中断。中断包含硬中断与软中断。硬中断对系统性能有更加不利的影响。较高的中断值表明可能有软件瓶颈,可能是在内核中,也可能是一个驱动程序出现瓶颈。记住,中断还包括CPU时钟引起的中断。参考1.1.6节的内容。
……
书摘
CPU空闲时间。其描述了系统空闲等待任务的CPU百分比。
Nice消耗CPU时间。描述了CPU花费在re.nicing进程(更改进程的执行顺序和优先级)上的时间百分比。
平均负载。load average不是一个百分比,而是以下总和的滚动平均值:队列中等待处理的进程数。
等待不可中断任务被完成的进程数。
可运行的进程。这个值描述了已经准备好执行的进程数。在一段持续的时间内,这个值不应该超过物理处理器数量的10倍。否则处理器可能是瓶颈。
阻塞的进程。不被执行的进程数,因为它们要等待I/O操作结束。阻塞的进程数能反映出是否有I/O瓶颈。
上下文切换。在系统上发生线程之间切换的数量。大量上下文切换如果与大量中断相关,则可能是驱动程序或应用程序出现问题的信号。上下文切换通常是不利的,因为每一次上下文切换都会导致CPU缓存被刷新,但是有些上下文切换是必要的。参考1.1.5节的内容。
中断。中断包含硬中断与软中断。硬中断对系统性能有更加不利的影响。较高的中断值表明可能有软件瓶颈,可能是在内核中,也可能是一个驱动程序出现瓶颈。记住,中断还包括CPU时钟引起的中断。参考1.1.6节的内容。
……