翻译:飞哥 (http://hi.baidu.com/imlidapeng)

版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明。

原文名称:《Linux Performance and Tuning Guidelines》

原文地址:http://www.redbooks.ibm.com/abstracts/redp4285.html

-------------------------------------------------------------------------------------------

1.6.1 处理器性能指标
1.6.2 内存性能指标
1.6.3 网络性能指标
1.6.4 块设备性能指标

-------------------------------------------------------------------------------------------

在我们了解Linux操作系统中各种调优参数和性能度量工具前,有必要讨论一下关于系统性能的各种可用指标和他们的意义。
​由于Linux是一个开源的操作系统,所以有很多性能度量工具可以使用。你最后选择哪个工具取决于你的个人喜好和数据量以及你需要的详细程度。
​虽然有很多工具可以使用,但所有的性能度量工具都测量相同的指标,所以理解这些指标能让你使用任何你所碰到工具。
​为此我们只涉及了最重要的一些指标。有许多更详细的指标可以用来做深入分析,但这些已超出了本文的范畴。

1.6.1 处理器性能指标

下面是关于处理器的性能指标。

▶ CPU使用率【CPU Utilization】

这可能是最直接的指标了,它表示每个处理器的整体使用率。
​在IBM System x架构中,如果在持续一段时间里CPU使用率超过80%,就可能预示着CPU出现了瓶颈。

​▶ 用户时间【User Time】

表示用户进程所花费的CPU百分比,包括Nice时间。在用户时间值很高的情况下,表明系统正在执行实际的工作。

▶ 系统时间【System Time】

表示内核操作所花费的CPU百分比,包括硬中断【IRQ】和软中断[SoftIRQ]。
​系统时间值持续很高表明网络或驱动器堆栈可能存在瓶颈。通常系统只花费很少时间在内核时间上。

​▶ 等待【Waiting】

花费在等待I/O操作所需的CPU时间总和,与阻塞【Blocked】值相似,
​系统不应该花费过多的时间等待I/O操作;否则你应该检查一下I/O子系统各方面性能。

​▶ 空闲时间【Idle time】

表示CPU空闲的百分比。

​▶ Nice时间【Nice time】

表示花费在执行re-nicing(改变进程的执行顺序和优先级)进程的CPU百分比。

​▶ 平均负载【Load average】

平均负载不是百分比,它是下面数值之和的平均值:

– 队列中等待执行的进程数
– 等待不可中断任务执行完成的进程数。

也就是TASK_RUNNING和TASK_UNINTERRUPTIBLE之和的平均值。
​如果请求CPU时间的进程发生阻塞(),平均负载将会上升。
​相反如果每个进程都可以立即执行不会错过CPU周期,平均负载就会降低。

​▶ 可运行进程【Runable processes】

这个值表示准备执行的进程。这个值在持续一段时间按内应该不会超过物理处理器数量的10倍,否则CPU可能存在瓶颈。

​▶ 堵塞【Blocked】

在等待I/O操作完成前,进程是不能继续执行。进程堵塞可能意味着I/O存在瓶颈。

​▶ 上下文交换【Context switch】

系统中进程之间进行交换的数量。上下文交换次数过多与大量的中断有关,这可能暗示着驱动器或应用程序存在问题。
​通常是不需要上下文交换的,因为每次只需要刷新CPU缓存,但有些上下文交换是必要的。参见1.1.5“上下文交换”。

▶ 中断【Interrupts】

中断数量中包括硬中断和软中断。硬中断会对系统性能产生非常不利的影响。高中断值表明软件存在瓶颈,可能是内核或者驱动。
​请记住中断值中也包括CPU始终所导致的中断。参见1.1.6“中断处理”。

​1.6.2 内存性能指标

下面是关于内存的性能指标。

▶ 空闲内存【Free memory】

与其它操作系统相比,不必过分在意空闲内存值。正如1.2.2“虚拟内存管理”所述,
​Linux内核将大量未使用的内存分配作为文件系统缓存使用,所以在已用内存扣除用于缓冲和缓存的数量得到实际空闲内存。

​▶ 交换空间使用【Swap usage】

这个值表示已使用的交换空间数量。正如1.2.2“虚拟内存管理”所述,交换空间的使用只能告诉你Linux在管理内存上是多么有效。
​要想确定内存是否存在瓶颈,Swap In/Out的数量才以为着用来。
​如果Swap In/Out长时间保持在每秒钟超过200到300页以上可能表示内存存在瓶颈。

▶ 缓冲与缓存【Buffer and cache】

被用来作为文件系统和块设备的缓存

​▶ Slabs

表示内核所使用的内存。注意内核的页是不能被交换到硬盘上的。

▶ 活动与非活动内存【Active versus inactive memory】

提供关于活动内存的相关信息。非活动内存会作为候选被kswapd交换到硬盘。参见“页帧回收”

​1.6.3 网络性能指标

下面是关于网络的性能指标。

▶ 已收到和已传送的封包【Packets received and sent】

这个指标能告诉你特定网卡已收到和已发送的封包数量

​▶ 已收到和已传送的字节【Bytes received and sent】

这个值表示特定网卡已收到和已发送的字节数量。

​▶ 每秒钟冲突数【Collisions per second】

这个值提供发生在指定网卡的网络冲突的数量。持续出现冲突值表示在网络架构中存在瓶颈而不是服务器。
​在大多数正确配置网络中,冲突时非常罕见的,除非网络架构是由hub组成的。

​▶ 丢弃的封包【Packets dropped】

被内核丢弃的封包数,原因可能是防火墙配置问题或缺乏网络缓冲

​▶ Overruns

Overruns表示超出网络接口缓冲的次数。这个指标可以与丢弃的封包数量配合来确定瓶颈是出自网络缓冲还是网络队列长度。

​▶ 错误【Errors】

被标示为失败的帧的数量。这经常是由于网络不匹配或部分网线损坏引起的。对于铜缆千兆网部分网线损坏会产生严重的性能问题。

​1.6.4 块设备性能指标

下面是关于块设备的性能指标。

▶ IO等待【Iowait】

CPU在等待I/O操作发生所花费的时间。如果这个值持续很高,很可能表示I/O存在瓶颈。

​▶ 队列平均长度【Average queue length】

I/O请求的数量。通常硬盘队列值在2到3为最佳;过高可能表示硬盘I/O存在瓶颈。

​▶ 平均等待时间【Average wait】

I/O请求服务所花费的平均时间。等待时间包括实际I/O操作的时间和在I/O队列中等待的时间。单位为毫秒ms。

​▶ 每秒钟传输的数量【Transfers per second】

表示每秒钟执行了多少次I/O操作(包括读取和写入)。
​与每秒钟传输字节数【kBytes per second】结合可以帮助确定系统平均传输大小。平均传输大小通常要与硬盘子系统的条带大小一致。

​▶ 每秒钟读写块的数量【Blocks read/write per second】

这个指标表示每秒钟读写块的数量,在2.6内核中块的大小为1024字节,早期的内核可以有不同的块大小,从512字节到4KB。

​▶ 每秒钟读写字节的数量【Kilobytes per second read/write】

表示块设备读写的实际数据的数量,单位为KB。

《Linux 性能及调优指南》1.6 了解Linux性能指标的更多相关文章

  1. 《Linux性能及调优指南》1.3 Linux文件系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  2. Linux性能及调优指南1.2之Linux内存架构

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  3. 《Linux 性能及调优指南》1.1 Linux进程管理

    https://blog.csdn.net/ljianhui/article/details/46718835 本文为IBM RedBook的Linux Performanceand Tuning G ...

  4. 《Linux 性能及调优指南》写在后面的话

    感谢飞哥的翻译. 目前飞哥 (http://hi.baidu.com/imlidapeng)的网址已经不能访问了. <Linux 性能及调优指南>这本书的原文地址:http://www.r ...

  5. 《linux性能及调优指南》 3.5 网络瓶颈

    3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...

  6. 《Linux 性能及调优指南》2.3 监控工具

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  7. 《Linux 性能及调优指南》1.5 网络子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  8. 《Linux 性能及调优指南》1.4 硬盘I/O子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  9. 《Linux 性能及调优指南》3.1 确认瓶颈

    翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...

随机推荐

  1. SimpleEntity

    项目地址 :  https://github.com/kelin-xycs/SimpleEntity SimpleEntity 一个 用 C# 实现的 简单的 持久层 Entity 实现 . 这是一个 ...

  2. [转]DB2错误代码大全

    DB2 SQLSTATE 消息 异常 一2008-03-31 13:17SQLSTATE 消息本节列示 SQLSTATE 及其含义.SQLSTATE 是按类代码进行分组的:对于子代码,请参阅相应的表. ...

  3. output.filename 与 output.chunkFilename 的区别

    // webpack.config.js module.exports = { entry: './src/index.js', output: { filename: '[name].bundle. ...

  4. Elasticsearch(四)优化用户体验

    改正用户拼写 Term suggester:词项匹配建议:可以通过wiki的插件来下载wiki上面的单词以及短语,来作为你的拼写提示基础仓库: Phrase suggester:n-gram算法,短语 ...

  5. js 控件样式显隐和赋值

    控制样式显示: $("#againMetting")[0].style.display = "inline";//显示 $("#againMettin ...

  6. Zookeeper 重连机制

    Zookeeper 重连机制 public class ZKConnectSessionWatcher implements Watcher { public final static String ...

  7. Go 并发控制--WaitGroup的使用

    开发过程中,经常task之间的同步问题.例如,多个子task并发完成一部分任务,主task等待他们最后结束. 在Go语言,实现同步的一种方式就是WaitGroup. Example package m ...

  8. pyhanlp 两种依存句法分类器

    依存句法分析器 在HanLP中一共有两种句法分析器 ·依存句法分析 (1)基于神经网络的高性能依存句法分析器 (2)MaxEnt依存句法分析 基于神经网络的高性能依存句法分析器 HanLP中的基于神经 ...

  9. excel技巧--多行排成单列

    要将上图的多行排成单列的效果,做法如下: 1.在倒数第二列的下方单元格,写入=号,然后再点击倒数第一列第一个单元格.这样复制该单元格的公式. 2.然后对着这个复制好的单元格的右下角一直往下拖拉,尽量拖 ...

  10. 关于class produre

    很好理解 type TMessageHandler = class //使得回车消息转换成Tab消息 class procedure AppMessage(var Msg:TMsg;var Handl ...