翻译:飞哥 (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. openstack--7--创建一台虚拟机

    回顾下前几节用到的东西 MySQL:为各个服务提供数据存储RabbitmQ:为各个服务之间提供通信提供交通枢纽Keystone:为各个服务之间通信提供认证和服务注册Glance:为虚拟机提供镜像管理N ...

  2. spring boot 项目 热启动

    第一需要 spring-boot-devtools 依赖 <dependency> <groupId>org.springframework.boot</groupId& ...

  3. 不同eclipse版本的git库使用

    在eclipse 4.4.2 -win32版本下编译好后上传版本: 1.在eclipse 4.4.0 -win64 版本下,编译报 缺少 sevlet.http...库,解决方法  project - ...

  4. pyhanlp 共性分析与短语提取内容详解

    pyhanlp 共性分析与短语提取内容详解   简介 HanLP中的词语提取是基于互信息与信息熵.想要计算互信息与信息熵有限要做的是 文本分词进行共性分析.在作者的原文中,有几个问题,为了便于说明,这 ...

  5. mysql的变量信息详解

    mysql的变量详解 执行show variables命令可以查看MySQL服务器的变量 变量名 默认值 说明 对应的配置文件参数 auto_increment_increment 1 自增长类型的初 ...

  6. RC4被JDK8默认禁用导致腾讯QQ邮箱无法访问

    7月29日开始,腾讯修改了邮箱的加密方式,导致我们线上的所有的腾讯代收.代发邮件的功能全部失效.解决方法在最后,如果需要可直接跳转至解决方法一节 问题出现 7月29日开始,线上的所有的腾讯代收.代发邮 ...

  7. swoole创建工作进程,执行滞后工作

    一,创建守候进程,因为这里不需要Server,也没有Client,数据交换通过redis进行 <?php namespace Kuba\Saas; require_once __DIR__ . ...

  8. 值得收藏的JSP连接mysql数据库的例子

    1:用mysql驱动把mysql与tomcat的连接起来.把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可. 2:然后在自己的新建的web应用程序上面就可以下下面的代码 3: ...

  9. 当弹出的div失去焦点的时候自动隐藏

    jquery: $("#button").click(function(event){ $("#box").show(); event.stopPropagat ...

  10. PAT 乙级 1010 一元多项式求导 (25) C++版

    1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...